Aqui está a estrutura do array
contact: {
phone: [
{
number: "+1786543589455",
place: "New Jersey",
createdAt: ""
}
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Aqui eu sei apenas o mongo id ( _id
) e o número de telefone ( +1786543589455
) e preciso remover todo o elemento correspondente da matriz do documento. ou seja, o elemento indexado zero na matriz telefônica corresponde ao número de telefone e precisa remover o elemento correspondente da matriz.
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Eu tentei com o seguinte método de atualização
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
Mas ele remove number: +1786543589455
do objeto da matriz interna, não o elemento indexado zero na matriz do telefone. Tentei pull
também sem sucesso.
Como remover o elemento do array no mongodb?
{ $pull: { 'contact.phone.$': { 'contact.phone.$.number': '+1786543589455' } } }
e{ $pull: { 'contact.phone': { 'contact.phone.$.number': '+1786543589455' } } }
sem sucesso. Não entende o trabalho de operadores posicionais aqui?