Estoy usando Mongo 3.4.0
El operador $ rename actualiza el nombre de un campo y tiene la siguiente forma:
{$rename: { <field1>: <newName1>, <field2>: <newName2>, ... } }
por ej.
db.getCollection('user').update( { _id: 1 }, { $rename: { 'fname': 'FirstName', 'lname': 'LastName' } } )
El nuevo nombre de campo debe diferir del nombre de campo existente. Para especificar un en un documento incrustado, use la notación de puntos.
Esta operación cambia el nombre del campo nmae para nombrar todos los documentos de la colección:
db.getCollection('user').updateMany( {}, { $rename: { "add": "Address" } } )
db.getCollection('user').update({}, {$rename:{"name.first":"name.FirstName"}}, false, true);
En el método anterior, falso, verdadero son: {upsert: falso, multi: verdadero}. Para actualizar todos sus registros, necesita el multi: verdadero.
Cambiar el nombre de un campo en un documento incrustado
db.getCollection('user').update( { _id: 1 }, { $rename: { "name.first": "name.fname" } } )
utilice el enlace: https://docs.mongodb.com/manual/reference/operator/update/rename/
false, trueen elupdatemétodo de la$renameversión son:{ upsert:false, multi:true }. Necesitamulti:trueactualizar todos sus registros.