Alp Kaya
Alp Kaya

Reputation: 33

How can i update all object in an array without id at MongoDB

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?

Upvotes: 0

Views: 3343

Answers (2)

Saleem
Saleem

Reputation: 9008

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);
});

Upvotes: 4

Ben
Ben

Reputation: 5074

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

Upvotes: 0

Related Questions