I need to insert a new field(column) to mongodb collection which has now 5246 documents. The field should be auto incremented . So that i use an for loop . My query is as follows `
for(i=1;i<=5246;i++) {
db.coll.update({},{$set:{"new_field":i}},false,true)
};
But my bad the output is as,
{new_field:5246},{new_field:5246},{new_field:5246},.......
Is there any problem with query..?.
Why are you updating all records with no find criteria? Technically this loop is working as it should. What you need to do instead is loop through a cursor of your collection like so:
var cursor = db.coll.find(),
i = 0;
cursor.forEach(function(x){
db.coll.update({_id: x._id}, {$set:{new_field:i}})
$i++;
});
Something like that would work instead.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With