Ecco la struttura degli array
contact: {
phone: [
{
number: "+1786543589455",
place: "New Jersey",
createdAt: ""
}
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Qui conosco solo l'id di mongo ( _id
) e il numero di telefono (+1786543589455
) e devo rimuovere l'intero elemento dell'array corrispondente dal documento. vale a dire che l'elemento zero indicizzato nell'array telefonico è associato al numero di telefono e deve rimuovere l'elemento dell'array corrispondente.
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Ho provato con il seguente metodo di aggiornamento
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
Ma rimuove number: +1786543589455
dall'oggetto array interno, non zero elemento indicizzato nell'array telefonico. Provato pull
anche senza successo.
Come rimuovere l'elemento array in mongodb?
{ $pull: { 'contact.phone.$': { 'contact.phone.$.number': '+1786543589455' } } }
e{ $pull: { 'contact.phone': { 'contact.phone.$.number': '+1786543589455' } } }
senza successo. Non capisce il lavoro degli operatori posizionali qui?