Я использую, Mongo 3.4.0
Оператор $ rename обновляет имя поля и имеет следующую форму:
{$rename: { <field1>: <newName1>, <field2>: <newName2>, ... } }
, например,
db.getCollection('user').update( { _id: 1 }, { $rename: { 'fname': 'FirstName', 'lname': 'LastName' } } )
Имя нового поля должно отличаться от имени существующего поля.Чтобы указать во встроенном документе, используйте точечную нотацию.
Эта операция переименовывает поле nmae в name для всех документов в коллекции:
db.getCollection('user').updateMany( {}, { $rename: { "add": "Address" } } )
db.getCollection('user').update({}, {$rename:{"name.first":"name.FirstName"}}, false, true);
В приведенном выше методе false, true: {upsert: false, multi: true}. Чтобы обновить все ваши записи, вам нужно multi: true.
Переименовать поле во встроенном документе
db.getCollection('user').update( { _id: 1 }, { $rename: { "name.first": "name.fname" } } )
используйте ссылку: https://docs.mongodb.com/manual/reference/operator/update/rename/