Node的Express,在一个集合上运行一个Model方法
所以我有一个简单的查询:
var query = postModel.find({ //etc }); query.exec(function(err, posts) { });
然后我有一个模型的方法:
PostSchema.method('deepPopulate', function(cb) { //stuff });
在我的其他发现,我可以做这样的东西:
post.deepPopulate(function(err, post) {});
对于findOne()
可以正常工作,但是如何在find()
的结果中对post集合运行相同的Model函数?
我会使用asynchronous库的映射方法。 承诺也可能是可能的。
async.map(posts, function (post, done) { post.deepPopulate(done); }, function (err, posts) { // ... do yaw thang });
假设您没有对您的查询使用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. } });