Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Hủy thiết lập (unset) thuộc tính từ một element mảng trong MongoDB?

Để xóa (unset) một thuộc tính (field) từ một element cụ thể trong mảng, bạn kết hợp $unset với toán tử vị trí ($) sau khi match element bằng điều kiện.

Tạo dữ liệu mẫu


Hiển thị document:

{ "_id" : 1, "StudentDetails" : [ { "StudentFirstName" : "Ramit", "StudentCountryName" : "UK" }, { "StudentFirstName" : "Bob", "StudentCountryName" : "US" }, { "StudentFirstName" : "Carol", "StudentCountryName" : "AUS" } ] }

Unset thuộc tính StudentCountryName = "AUS"


Kiểm tra kết quả:

{ "_id" : 1, "StudentDetails" : [ { "StudentFirstName" : "Ramit", "StudentCountryName" : "UK" }, { "StudentFirstName" : "Bob", "StudentCountryName" : "US" }, { "StudentFirstName" : "Carol" } ] }

Giải thích

  • Query {"StudentDetails.StudentCountryName": "AUS"} tìm document có element thỏa mãn
  • $ (positional operator) tham chiếu đến element đầu tiên khớp trong mảng
  • $unset: {"StudentDetails.$.StudentCountryName": 1} xóa trường StudentCountryName khỏi element đó
  • Element Carol giờ chỉ còn StudentFirstName

Lưu ý: Chỉ element đầu tiên khớp bị ảnh hưởng. Để unset từ tất cả element khớp, cần dùng aggregation pipeline trong update (MongoDB 4.2+) hoặc lặp qua ứng dụng.