Tôi đang sử dụng, Mongo 3.4.0
Toán tử $ đổi tên cập nhật tên của một trường và có dạng sau:
{$rename: { <field1>: <newName1>, <field2>: <newName2>, ... } }
ví dụ
db.getCollection('user').update( { _id: 1 }, { $rename: { 'fname': 'FirstName', 'lname': 'LastName' } } )
Tên trường mới phải khác với tên trường hiện có. Để chỉ định một trong tài liệu nhúng, sử dụng ký hiệu dấu chấm.
Thao tác này đổi tên trường nmae thành tên cho tất cả các tài liệu trong bộ sưu tập:
db.getCollection('user').updateMany( {}, { $rename: { "add": "Address" } } )
db.getCollection('user').update({}, {$rename:{"name.first":"name.FirstName"}}, false, true);
Trong phương thức trên false, true là: {upsert: false, multi: true}. Để cập nhật tất cả các bản ghi của bạn, Bạn cần multi: true.
Đổi tên một trường trong một tài liệu nhúng
db.getCollection('user').update( { _id: 1 }, { $rename: { "name.first": "name.fname" } } )
sử dụng liên kết: https://docs.mongodb.com/manual/reference/operator/update/rename/
false, true
trongupdate
phương pháp của$rename
phiên bản là :{ upsert:false, multi:true }
. Bạn cầnmulti:true
cập nhật tất cả các hồ sơ của bạn.