Sto usando Mongo 3.4.0
L'operatore $ rename aggiorna il nome di un campo e ha la seguente forma:
{$rename: { <field1>: <newName1>, <field2>: <newName2>, ... } }
per es
db.getCollection('user').update( { _id: 1 }, { $rename: { 'fname': 'FirstName', 'lname': 'LastName' } } )
Il nome del nuovo campo deve differire dal nome del campo esistente. Per specificare un in un documento incorporato, usare la notazione punto.
Questa operazione rinomina il campo nmae come nome per tutti i documenti della raccolta:
db.getCollection('user').updateMany( {}, { $rename: { "add": "Address" } } )
db.getCollection('user').update({}, {$rename:{"name.first":"name.FirstName"}}, false, true);
Nel metodo sopra false, true sono: {upsert: false, multi: true}. Per aggiornare tutti i record, è necessario il multi: true.
Rinomina un campo in un documento incorporato
db.getCollection('user').update( { _id: 1 }, { $rename: { "name.first": "name.fname" } } )
utilizzare il link: https://docs.mongodb.com/manual/reference/operator/update/rename/
false, true
nelupdate
metodo della$rename
versione sono:{ upsert:false, multi:true }
. È necessariomulti:true
per aggiornare tutti i record.