Mongoose - retrouver un objet à partir de réf requête
J'ai les schémas suivants:
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],
});
Ce que je suis en train de faire, est de demander les événements, avec une invitation._id, et, finalement, revenir à l'utilisateur...
invités->eventMember->user
Pour l'instant j'ai:
Event
.find({ "invitees._id": req.query.invitation_id })
.populate('user')
.run(function (err, myEvent) {
console.log('error: ' + err);
console.log('event: '+ myEvent);
})
Cela fonctionne, et la console affiche la sortie de myEvent...
(Je me rends compte que je n'avez pas besoin de remplir une partie de ma mangouste requête ci-dessus pour ça... je suis juste tester)
Je suis en difficulté sur la façon de l'obtenir, ce que j'avais fondamentalement décrire comme: myEvent.des invités.l'utilisateur
MODIFIER
Comme une mise à jour...
Cette œuvres - cependant, il sorte de suce, comme maintenant, je vais avoir besoin de faire un autre db opération pour obtenir de l'utilisateur (je me rends compte de ref dans la mangouste n'présent sous le capot)
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
});
OriginalL'auteur Alex | 2012-04-18
Vous devez vous connecter pour publier un commentaire.
Essayer
Mise à jour:
Ici est un travail gist.
OriginalL'auteur aaronheckmann