Ale*_*lex 11 mongoose mongodb node.js
我有以下架构:
var userSchema = new Schema({
firstName: String,
lastName: String,
emailAddress: {type: String, set: toLower, index: {unique: true}},
});
var eventMemberSchema = new Schema ({
user: { type : Schema.ObjectId, ref : 'User' },
created: { type: Date, default: Date.now }
});
var eventSchema = new Schema({
id : String,
name : String,
startDate : Date,
endDate : Date,
venue : { type : Schema.ObjectId, ref : 'Venue' },
invitees : [eventMemberSchema],
});
Run Code Online (Sandbox Code Playgroud)
我正在尝试做的是使用invitation._id查询事件,并最终取回用户...
invitees-> eventMember->用户
到目前为止我有:
Event
.find({ "invitees._id": req.query.invitation_id })
.populate('user')
.run(function (err, myEvent) {
console.log('error: ' + err);
console.log('event: '+ myEvent);
})
Run Code Online (Sandbox Code Playgroud)
这是有效的,控制台显示myEvent的输出...(我意识到我不需要上面的mongoose查询的填充部分...我只是测试)
我正在努力学习如何获得,我基本上描述为:myEvent.invitees.user
编辑
作为一个更新...这是有效的 - 但是,它有点糟透了,因为现在我需要做另一个数据库操作来获取用户(我意识到引用了mongoose中的引用)
Event
.findOne({ "invitees._id": "4f8eea01e2030fd11700006b"}, ['invitees.user'], function(err, evnt){
console.log('err: '+ err);
console.log('user id: '+ evnt.invitees[0].user); //this shows the correct user id
});
Run Code Online (Sandbox Code Playgroud)
aar*_*ann 19
尝试
Event
.find({ "invitees._id": req.query.invitation_id })
.populate('invitees.user')
Run Code Online (Sandbox Code Playgroud)
更新:
这是一个工作要点.
| 归档时间: |
|
| 查看次数: |
15665 次 |
| 最近记录: |