填充在 nodejs 和 mongoose 中不起作用
populate in nodejs and mongoose not worked
我有一个用于保存信息的架构,在此信息中我有一个 userId
,我想 return 该架构的信息和 return 用户表单的信息 user
架构 .
旅行请求架构:
const TravelRequestSchema = new Schema({
userId: { type: Schema.Types.ObjectId, ref: "User" }
description: { type: String, require: true }
}, {
toObject: { virtuals: true },
toJSON: { virtuals: true }
});
用户架构:
const UserSchema = new Schema({
firstName: { type: String },
lastName: { type: String },
phoneNumber: { type: String },
email: { type: String, defult: null }
},{
toJSON: { virtuals: true }
});
现在我写这个问题是为了获取信息:
await TravelRequestModel.find({})
.populate('User')
.exec();
但它不是 return 我的用户信息,它只是 return UserId
。
现在我该如何解决这个问题??
您希望查询填充特定字段,而不是模型名称
await TravelRequestModel.find({})
.populate('userId')
.exec();
这是因为如果您有多个引用同一模型的字段,您希望能够选择要填充的字段。
我有一个用于保存信息的架构,在此信息中我有一个 userId
,我想 return 该架构的信息和 return 用户表单的信息 user
架构 .
旅行请求架构:
const TravelRequestSchema = new Schema({
userId: { type: Schema.Types.ObjectId, ref: "User" }
description: { type: String, require: true }
}, {
toObject: { virtuals: true },
toJSON: { virtuals: true }
});
用户架构:
const UserSchema = new Schema({
firstName: { type: String },
lastName: { type: String },
phoneNumber: { type: String },
email: { type: String, defult: null }
},{
toJSON: { virtuals: true }
});
现在我写这个问题是为了获取信息:
await TravelRequestModel.find({})
.populate('User')
.exec();
但它不是 return 我的用户信息,它只是 return UserId
。
现在我该如何解决这个问题??
您希望查询填充特定字段,而不是模型名称
await TravelRequestModel.find({})
.populate('userId')
.exec();
这是因为如果您有多个引用同一模型的字段,您希望能够选择要填充的字段。