Xóa cột, field, trường của collections trong MongoDB ($unset)

This entry is part 16 of 24 in the series MongoDB

Xóa cột, field, trường của collections trong MongoDB ($unset).

(Trong mongodb data lưu dưới dạng JSON nên sẽ không có khái niệm cột, tuy nhiên khi hiển thị ta sẽ thấy mỗi field tương đương với 1 cột)

Xóa field trong collections

Để xóa một field trong collections ta sử dụng lệnh update() kết hợp với $unset

Cú pháp:

db.collection_name.update(
   <SELECTION_CRITERIA>,
   { $unset: { <field1>: "", ... } },
    multi: <boolean>
)

Trong đó:

  • collection_name là tên của collection
  • SELECTION_CRITERIA: là mệnh đề where trong MongoDB dùng để chọn ra những document được xóa field
  • $unset: danh sách các field sẽ bị xóa
  • multi: (boolean): mặc định là false. Nếu là true thì mới cho phép xóa field ở nhiều documents

Ví dụ:

Mình insert 5 bản ghi sau vào document 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'}])

Xóa cột, field, trường của collections trong MongoDB ($unset)

Để xóa fields age ta dùng lệnh sau:

db.player.updateMany({},{$unset:{age:""}})
hoặc:
db.player.update({},{$unset:{age:""}},{multi: true})

* Lưu ý: Các bạn nhớ là dùng lệnh updateMany() hoặc lệnh update() với tùy chọn {multi: true} nếu không nó sẽ chỉ xóa field age của document đầu tiên mà thôi

Kết quả: trường age bị xóa khỏi tất cả các document trong collections player

Xóa cột, field, trường của collections trong MongoDB ($unset)

 

Okay, Done!

References:

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

Series Navigation<< Ưu nhược điểm của MongoDB, khi nào nên dùng MongoDBKiểm tra null, check tồn tại trong MongoDB với $exists >>
stackjava.com