J'utilise , Mongo 3.4.0
L'opérateur $rename met à jour le nom d'un champ et a la forme suivante :
{$rename: { <field1>: <newName1>, <field2>: <newName2>, ... } }
par exemple
db.getCollection('user').update( { _id: 1 }, { $rename: { 'fname': 'FirstName', 'lname': 'LastName' } } )
Le nouveau nom du champ doit être différent du nom du champ existant. Pour spécifier un dans un document incorporé, utilisez la notation par points.
Cette opération renomme le champ nmae en nom pour tous les documents de la collection :
db.getCollection('user').updateMany( {}, { $rename: { "add": "Address" } } )
db.getCollection('user').update({}, {$rename:{"name.first":"name.FirstName"}}, false, true);
Dans la méthode ci-dessus, false, true sont : { upsert:false, multi:true }.Pour mettre à jour tous vos enregistrements, vous avez besoin du multi:true.
Renommer un champ dans un document incorporé
db.getCollection('user').update( { _id: 1 }, { $rename: { "name.first": "name.fname" } } )
utiliser le lien : https://docs.mongodb.com/manual/reference/operator/update/rename/