Ось структура масиву
contact: {
phone: [
{
number: "+1786543589455",
place: "New Jersey",
createdAt: ""
}
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Тут я знаю тільки mongo id ( _id
) та номер телефону ( +1786543589455
), і мені потрібно видалити цілий відповідний елемент масиву з документа. тобто нульовий індексований елемент у масиві телефону узгоджується з номером телефону і потрібно видалити відповідний елемент масиву.
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Я спробував виконати наступний метод оновлення
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
Але він видаляє number: +1786543589455
з внутрішнього масиву об'єкт, а не нульовий індексований елемент у масиві телефону. Пробував pull
також без успіху.
Як видалити елемент масиву в mongodb?
{ $pull: { 'contact.phone.$': { 'contact.phone.$.number': '+1786543589455' } } }
і{ $pull: { 'contact.phone': { 'contact.phone.$.number': '+1786543589455' } } }
без успіху. Не розумієте тут роботи позиційних операторів?