Eu estou usando, Mongo 3.4.0
O operador $ rename atualiza o nome de um campo e tem o seguinte formato:
{$rename: { <field1>: <newName1>, <field2>: <newName2>, ... } }
por exemplo
db.getCollection('user').update( { _id: 1 }, { $rename: { 'fname': 'FirstName', 'lname': 'LastName' } } )
O novo nome do campo deve ser diferente do nome do campo existente. Para especificar a em um documento incorporado, use a notação de ponto.
Esta operação renomeia o campo nmae para nomear todos os documentos da coleção:
db.getCollection('user').updateMany( {}, { $rename: { "add": "Address" } } )
db.getCollection('user').update({}, {$rename:{"name.first":"name.FirstName"}}, false, true);
No método acima false, true são: {upsert: false, multi: true}. Para atualizar todos os seus registros, você precisa do multi: true.
Renomear um campo em um documento incorporado
db.getCollection('user').update( { _id: 1 }, { $rename: { "name.first": "name.fname" } } )
use o link: https://docs.mongodb.com/manual/reference/operator/update/rename/
false, true
noupdate
método da$rename
versão são:{ upsert:false, multi:true }
. Você precisamulti:true
atualizar todos os seus registros.