我可以从光标遍历功能中更新mongo文档吗?

时间:2018-04-02 12:26:11

标签: mongodb

是否可以从光标遍历函数内部更新mongo doc(类似于mongoose)?

类似的东西:

db.collection.find({email:"xxx@test.com"}).forEach(doc => {
  doc.newProp = 'newValue';
  doc.save();
});

2 个答案:

答案 0 :(得分:1)

看起来可以这样做:

db.collection.find({email:"xxx@test.com"}).forEach(doc => {
  doc.newProp = 'newValue';
  db.collection.save(doc);
});

答案 1 :(得分:0)

尝试使用以下查询,它应该可以解决您的问题: -

db.collection.find({email:"xxx@test.com"}).forEach(doc => {
db.collection.update({_id: doc._id},{$set:{"newProp":"value"}});
});

$ set 会更新现有值,否则如果文档中没有该字段,则会添加具有给定值的新字段。