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, true
en elupdate
método de la$rename
versión son:{ upsert:false, multi:true }
. Necesitamulti:true
actualizar todos sus registros.