Để 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ườngStudentCountryNamekhỏ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.