1

所以我有一个简单的查询:

var query = postModel.find({ //etc });
query.exec(function(err, posts) {

});

然后我有一个模型方法:

PostSchema.method('deepPopulate', function(cb) { //stuff });

在我的其他发现中,我可以这样做:

post.deepPopulate(function(err, post) {});

哪个适用于 a findOne(),但是如何在 a 的结果中对一组帖子运行相同的 Model 函数find()

4

2 回答 2

2

我会使用异步库的map方法。承诺也可能是可能的。

async.map(posts, function (post, done) {
  post.deepPopulate(done);
}, function (err, posts) {
  // ... do yaw thang
});
于 2013-09-25T14:16:45.793 回答
0

假设您没有使用该lean属性进行查询,每个结果都应该是一个具有以下方法的模型对象deepPopulate()

var query = postModel.find({ //etc });
query.exec(function(err, posts) {
  for each ( var post in posts ) {
    post.deepPopulate(); //Or however you use this guy.
  }
});
于 2013-09-24T22:22:53.450 回答