我想获取我的标签的数组/对象,其中包含objectId的内容(由用户ID找到)。
的usermodel
var userSchema = new mongoose.Schema({
pseudo : { type : String },
fullname : { type : String },
password : { type : String },
email : { type : String },
//tags : { type : Array },
tags : [
{
objectId : { type : mongoose.Schema.Types.ObjectId, ref: 'tag'},
completed : { type : Boolean }
}
],
dateCreation : { type : Date, default : Date.now }
});
tagModel
var tagSchema = new mongoose.Schema({
name : { type : String },
alias : { type : String },
description : { type : String },
dateCreation : { type : Date, default : Date.now }
});
猫鼬请求
userModel.find({ _id : req.session.passport.user._id }).select('tags').populate('objectId', 'name alias').lean().exec(function (err, result) {
console.log(JSON.stringify(result));
});
的console.log
[
{
"_id":"538efe4a3bb9d97018b90ee4",
"tags":[
{
"objectId":"538f25f7f4d621281b7376e9",
"completed":false,
"_id":"538f25f7f4d621281b7376ea"
}
]
}
]
我想获得objectId的内容:/喜欢'name','alias'......
我知道我可以写两个获取内容的请求,但它没有优化:/
你能帮助我吗?
谢谢,
答案 0 :(得分:0)
您需要在populate
来电中填写字段的完整网点符号路径:
userModel.find({ _id : req.session.passport.user._id })
.select('tags')
.populate('tags.objectId', 'name alias')
.lean()
.exec(function (err, result) {
console.log(JSON.stringify(result));
}
);