【发布时间】:2017-04-06 12:13:28
【问题描述】:
我有一个 mongodb 模型,例如:
Data = {
dataID: String,
myarray:[]
}
我需要遍历 myarray
在我的 API 中我是这样写的
Data.findOne({dataID: '1234567890'}, function(err, data){
data.myarray.forEach(function(toMatch, index){
data.myarray[index].key = value;
});
data.save(function(err, data){
if (err) {
return res.status(500).send(err);
}
return res.status(200).send(data)
})
});
但 data 没有被保存,因为 nodejs 在 forEach 循环结束之前执行 data.save
我使用游标迭代MongoDB find()函数,但是如何迭代mongodb文档中的数组,等待它完成执行然后调用data.save
【问题讨论】:
-
hmm.. 我没有看到返回到调用 findOne 回调的文档的任何文档。 .forEach 只是 Array.prototype.forEach 吗?如果是……那么我认为您误诊了问题。