如何在MongoDB中更新没有id的数组中的所有对象

时间:2016-03-30 22:26:03

标签: node.js mongodb mongoose nosql

我用find()方法调用Elements,之后我想更新所有。例如:

db.collection.find().limit(10).update({$set: {'column' : 'value'}}); 

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

如果要将更新应用于集合中的每个文档,请使用{multi:true}选项

db.collection.update({},{$set: {'column' : 'value'}},{multi:true}); 

有关详细信息,请参阅collection.update

但是,如果您想更新选定数量的文件,您将需要更长的路线。

db.collection.find().limit(10).forEach(function(o){
    o.column = some_value; // replace some_value with real one.
    db.collection.update({_id:o._id},o);
});

答案 1 :(得分:0)

默认情况下,它仅更新找到的前1个文档。您需要添加multi = true作为update()的选项以更新所有。不幸的是,update()没有限制选项,因此您可以将其限制为10.

您可能必须首先使用限制执行find(),然后单独更新每个文档,如本文所述:

How to limit number of updating documents in mongodb