Używam Mongo 3.4.0
Operator $ rename aktualizuje nazwę pola i ma następującą postać:
{$rename: { <field1>: <newName1>, <field2>: <newName2>, ... } }
na przykład
db.getCollection('user').update( { _id: 1 }, { $rename: { 'fname': 'FirstName', 'lname': 'LastName' } } )
Nowa nazwa pola musi różnić się od istniejącej nazwy pola. Aby określić w osadzonym dokumencie, użyj notacji kropkowej.
Ta operacja zmienia nazwę pola nmae na nazwę dla wszystkich dokumentów w kolekcji:
db.getCollection('user').updateMany( {}, { $rename: { "add": "Address" } } )
db.getCollection('user').update({}, {$rename:{"name.first":"name.FirstName"}}, false, true);
W powyższej metodzie false, true to: {upsert: false, multi: true}. Aby zaktualizować wszystkie rekordy, potrzebujesz multi: true.
Zmień nazwę pola w osadzonym dokumencie
db.getCollection('user').update( { _id: 1 }, { $rename: { "name.first": "name.fname" } } )
użyj linku: https://docs.mongodb.com/manual/reference/operator/update/rename/
false, true
wupdate
sposobie$rename
wersji:{ upsert:false, multi:true }
. Musiszmulti:true
zaktualizować wszystkie swoje rekordy.