7
をオブジェクトの取得:マングース - 私は、次のスキーマを持っている参照クエリから
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],
});
私が何をしようとしている、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);
})
このWOR ks、コンソールにはmyEventの出力が表示されます... (これについて私のmongooseクエリの人口部分は必要ありません...私はちょうどテストしています)
私はどのように苦労しています私は基本的に説明したいものを、取得する:myEvent.invitees.userアップデートとして
EDIT
を...この は作品 - しかし、それは一種の吸う、今私は」として私はユーザーを取得するために別のDB操作を行う必要があります(私は、フードの下でこれを行うmongooseでrefを実現する)
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
});
(3.x)は.run()を.exec()に置き換えます。 – chovy