Je suis en train de remplir des documents déjà peuplés:Nested remplir avec Mongoose
postModel
.findOne({
_id: postId
}).select()
.populate('author')
.populate('sharedBy')
.populate('replies')
.exec(function(err, post) {
if (err) return err;
Cependant, le tableau replies
tiendra un tas de messages qui ont author
et sharedBy
clés que je dois aussi remplir. Ceci est ma stratégie:
.populate('author')
.populate('sharedBy')
.populate('replies')
.exec(function(err, post) {
if (err) return err;
post.deepPopulate(function(err, post){
Et deepPopulate
:
PostSchema.method('deepPopulate', function(cb) {
var post = this;
async.map(this.replies, function(reply, done) {
mongoose.model('Post', PostSchema).findOne({
_id: reply._id
}).select().populate('author').populate('sharedBy').exec(done);
}, function(err, replies) {
post.replies = replies;
cb(err, post);
});
});
Il trouve l'amende replies
mais je ne peux pas sembler les remettre dans le message original qui a été passé! Des idées?