STACKJAVA

Đổi tên field trong MongoDB với $rename

This entry is part 18 of 24 in the series MongoDB

Đổi tên field trong MongoDB với $rename

Đổi tên field trong MongoDB với $rename

$rename là lệnh dùng để cập nhật lại tên field trong MongoDB.

Cú pháp như sau:

db.COLLECTION_NAME.find( <SELECTION_CRITERIA>,{$rename: { <field1>: <newName1>, <field2>: <newName2>, ... } })

Ví dụ mình insert 5 bản ghi (document) sau vào collection player

db.player.insert([
{'_id':'1', 'name':'neymar', 'country':'brazil', 'age':25},
{'_id':'2', 'name':'hazard', 'country':'belgium', 'age':25},
{'_id':'3', 'name':'mbappe', 'country':'france', 'age':18},
{'_id':'4', 'name':'modric', 'country':'croatia', 'age':30},
{'_id':'5', 'name':'ronaldo', 'country':'portugal', 'age':33}
])

Bây giờ mình tiến hành đổi tên field name thành first_name, country thành address với document có _id = 1

db.player.update({_id:'1'},{$rename:{'name':'first_name', 'country': 'address'}})

Kết quả:

 

Lưu ý:

Bản chất của việc $rename chính là $unset (xóa dữ liệu) của cả field mới và field cũ, sau đó thực hiện $set (update dữ liệu) cho field mới.

Ví dụ khi bạn đổi tên field old_name sang tên mới là new_name

  • Nó sẽ xóa dữ liệu của cả field old_namenew_name sau đó update lại dữ liệu cho field new_name.
  • Nếu trong document cần đổi tên field đã có sẵn field new_name thì nó sẽ xóa đi vào tạo lại với dữ liệu mới.
  • Nếu field old_name không tồn tại thì nó không làm gì cả.

 

 Okay, Done!

References:

https://docs.mongodb.com/manual/reference/operator/update/rename/

Series Navigation<< Kiểm tra null, check tồn tại trong MongoDB với $existsTạo user/roles, phân quyền người dùng trên MongoDB >>