Đây là cấu trúc mảng
contact: {
phone: [
{
number: "+1786543589455",
place: "New Jersey",
createdAt: ""
}
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Ở đây tôi chỉ biết id mongo ( _id
) và số điện thoại ( +1786543589455
) và tôi cần xóa toàn bộ phần tử mảng tương ứng đó khỏi tài liệu. tức là phần tử được lập chỉ mục bằng 0 trong mảng điện thoại được khớp với số điện thoại và cần loại bỏ phần tử mảng tương ứng.
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Tôi đã thử với phương pháp cập nhật sau
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
Nhưng nó loại bỏ number: +1786543589455
khỏi đối tượng mảng bên trong, không phải là phần tử được lập chỉ mục bằng 0 trong mảng điện thoại. Đã thử pull
cũng không thành công.
Làm thế nào để loại bỏ các phần tử mảng trong mongodb?
{ $pull: { 'contact.phone.$': { 'contact.phone.$.number': '+1786543589455' } } }
và{ $pull: { 'contact.phone': { 'contact.phone.$.number': '+1786543589455' } } }
không thành công. Không hiểu làm việc của các nhà khai thác vị trí ở đây?