Here is array structure
contact: {
phone: [
{
number: \"+1786543589455\",
place: \"New Jersey\",
createdAt: \"\"
}
{
number: \"+1986543589455\",
place: \"Houston\",
createdAt: \"\"
}
]
}
Here I only know the mongo id(_id
) and phone number(+1786543589455
) and I need to remove that whole corresponding array element from document. i.e zero indexed element in phone array is matched with phone number and need to remove the corresponding array element.
contact: {
phone: [
{
number: \"+1986543589455\",
place: \"Houston\",
createdAt: \"\"
}
]
}
I tried with following update method
collection.update(
{ _id: id, \'contact.phone\': \'+1786543589455\' },
{ $unset: { \'contact.phone.$.number\': \'+1786543589455\'} }
);
But it removes number: +1786543589455
from inner array object, not zero indexed element in phone array. Tried with pull
also without a success.
How to remove the array element in mongodb?