当尝试填充一个字段时,返回的是最初为该字段保存的objectid
在models/gifts.js
var GiftSchema = new Schema({
name: String,
owner: {
user: {
type: Schema.Types.ObjectId,
ref: 'User',
required: false
},
nonRegisteredEmail: {
type: String,
required: false
},
nonRegisteredName: {
type: String,
required: false
}
},
description: String,
url: String
}
});
module.exports = mongoose.model('Gift', GiftSchema);
在models/user.js
var UserSchema = new Schema({
name: String,
email: { type: String, lowercase: true },
role: {
type: String,
default: 'user'
},
hashedPassword: String,
provider: String,
salt: String
});
module.exports = mongoose.model('User', UserSchema);
我保存gift
模型,方法是将用户的_id
添加到owner.user
的{{1}}字段中。
然后,当我尝试在查询期间填充gift
字段时,仅返回user
字段。 EX _id
5388bb3a82f0e4003100a6ba
答案 0 :(得分:2)
您要填充的路径为owner.user
,而不仅仅是user
,因此您应该更改此内容:
return Gift.find()
.populate({
path:'user',
model:'User'
})
对此:
return Gift.find()
.populate({
path:'owner.user',
model:'User'
})