web-dev-qa-db-fra.com

db.collection.update () tous les documents

J'essaie de renommer un champ dans tous les documents d'une collection, avec 

db.coll.update({},{ $rename: {'originField':'newField'} });

mais un seul document est changé, pourquoi? 

17
JuanPablo

Toutes les mises à jour dans MongoDB sont, par défaut, singulières. Vous devez ajouter une troisième option à votre commande pour effectuer:

db.coll.update({},{ $rename: {'originField':'newField'} }, {multi:true});

Si vous utilisez 3.2 et plus, vous pouvez utiliser updateMany()

db.coll.updateMany({}, {$rename: {'originField': "newField"}})
42
Sammaye
db.collectionname.update( { "field" : "oldvalue" }, { $set:{ "field" : "newvalue" } }, { multi : true } );
3
abdulH