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?
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"}})
db.collectionname.update( { "field" : "oldvalue" }, { $set:{ "field" : "newvalue" } }, { multi : true } );