Aquí está la estructura de la matriz
contact: {
phone: [
{
number: "+1786543589455",
place: "New Jersey",
createdAt: ""
}
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Aquí solo conozco la identificación de mongo ( _id
) y el número de teléfono ( +1786543589455
) y necesito eliminar todo el elemento de matriz correspondiente del documento. es decir, el elemento indexado cero en la matriz del teléfono coincide con el número de teléfono y necesita eliminar el elemento de la matriz correspondiente.
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Intenté con el siguiente método de actualización
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
Pero elimina number: +1786543589455
del objeto de matriz interna, no un elemento indexado a cero en la matriz del teléfono. Probado con pull
también sin éxito.
¿Cómo eliminar el elemento de matriz en mongodb?
{ $pull: { 'contact.phone.$': { 'contact.phone.$.number': '+1786543589455' } } }
y{ $pull: { 'contact.phone': { 'contact.phone.$.number': '+1786543589455' } } }
sin éxito. ¿No entiende el funcionamiento de los operadores posicionales aquí?