mongoDB数组中的forEach无法正常工作

时间:2017-04-05 20:21:31

标签: node.js mongodb

我有一个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)
   })
});

数据未保存,因为nodejs在forEach循环结束前执行 data.save

我使用游标迭代MongoDB find()函数,但是如何在mongodb文档中迭代数组,等待它完成执行然后调用 data.save

1 个答案:

答案 0 :(得分:0)

Mongodb查找返回数组,所以在你的情况下数据将是数组,data.myarray将是未定义的,你也无法执行数据保存