How can i update all object in an array without id

2019-09-10 00:21发布

I call the Elements with find() method and after than i want to update all. For example:

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

how can i fix this?

2条回答
我命由我不由天
2楼-- · 2019-09-10 00:39

By default it updates only the first 1 document it found. You need to add multi = true as an option to update() to update all. Unfortunately, update() doesn't have limit option so you can limit it to 10.

You might have to do find() with limit first and then update each document separately like mentioned in this post:

How to limit number of updating documents in mongodb

查看更多
我命由我不由天
3楼-- · 2019-09-10 00:43

If you want to apply update to every document in collection, use {multi:true} option

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

For more detail, see collection.update

However, if you want to update selected number of documents, you'll be taking longer route.

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);
});
查看更多
登录 后发表回答