我用find()方法调用Elements,之后我想更新所有。例如:
db.collection.find().limit(10).update({$set: {'column' : 'value'}});
我该如何解决这个问题?
答案 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(),然后单独更新每个文档,如本文所述: