Impossible d'obtenir le tableau de sous-documents Mongoose.js à remplir
Je suis en utilisant mongoose.js sur un node.js serveur de la connexion à mongodb et
J'ai une mangouste modèle comme suit
SubSchema = new Schema({
_member: {type: ObjectId, ref: 'Member'},
members: [{type: ObjectId, ref: 'Member'}],
created: { type: Date, default: Date.now }
});
mongoose.model('SubModel', SubSchema);
MainSchema = new Schema({
_member: {type: ObjectId, ref: 'Member'},
subs: [SubSchema],
members: [{type: ObjectId, ref: 'Member'}],
created: { type: Date, default: Date.now }
});
var MainModel mongoose.model('MainModel', MainSchema);
qui je tire avec une commande de ce
var q = MainModel.find({})
.sort('created', -1)
.limit(25)
.populate("_member")
.populate("subs._member")
.populate("subs.members");
q.execFind(function(err, mains){
//mains[0].subs[0].members - will always be empty why?
});
mon problème est que je ne peux pas obtenir des sous-marins.les membres de tableau pour remplir ou même charge, il ne cesse de montrer un tableau vide.
J'ai essayé .remplir("sous-marins.les membres") en vain, même si des sous-marins._member charges de l'amende juste
source d'informationauteur chrishawn
Vous devez vous connecter pour publier un commentaire.
essayer cette
@leesei: je ne peux pas commenter sur ton post (trop peu de rep), je laisse donc cela comme une réponse distincte.
Dans mangouste 3.6 subdoc de la population ne fonctionne toujours pas, le problème github.com/LearnBoost/mongoose/issues/1381 a été fermé il y a 7 mois avec la solution suivante comme une solution de contournement. J'ai dû changer légèrement de fusionner les zones sous-document de retour au document principal.
Le sous-document modèle
Story
doit être spécifiée explicitement:Dans la solution ci-dessus cela fonctionne:
mais cela ne fonctionne toujours pas:
De suivi sur @JohnnyHK post, vous pouvez spécifier le Modèle à utiliser dans
populate()
pour l'instant:https://github.com/LearnBoost/mongoose/issues/1377#issuecomment-15920370
J'ai quelque chose qui ressemble un peu différente, mais remplit le document avec les éléments de tableau. Je me demande si c'est de l'objectid qui sont à l'origine de ces problèmes.
J'ai eu plusieurs imbriquer des couches profondes de la sous-docs, et aucune des options a fonctionné pour moi. J'ai trouvé cela étonnant Mangouste plugin qui va faire profonde de la population de façon transparente. Il vous suffit d'utiliser la même syntaxe que vous vous attendez à travailler avec les remplir, mais il fonctionne réellement.
https://github.com/buunguyen/mongoose-deep-populate