Đây là mảng cấu trúcLàm thế nào để loại bỏ phần tử mảng trong mongodb?
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 phải loại bỏ toàn bộ phần tử mảng tương ứng từ tài liệu. tức là phần tử không được lập chỉ mục trong mảng điện thoại được khớp với số điện thoại và cần phải loại bỏ phần tử mảng tương ứng.
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
tôi đã cố gắng với theo phương pháp cập nhật
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
Nhưng nó loại bỏ number: +1786543589455
từ đối tượng mảng bên trong, không phải không yếu tố được lập chỉ mục trong mảng điện thoại. Đã thử với pull
cũng không thành công.
Làm thế nào để loại bỏ phần tử mảng trong Mongodb?
Cảm ơn bạn. Nó hoạt động tốt đẹp. Tôi đã thử với '{$ 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 hoạt động của các nhà điều hành vị trí ở đây? –
Có cuộc gọi lại với điều này không? –
@iLoveUnicorns bạn có thể thêm gọi lại làm đối số thứ ba hoặc bạn có thể sử dụng lời hứa trả lại. –