Voici la structure du tableau
contact: {
phone: [
{
number: "+1786543589455",
place: "New Jersey",
createdAt: ""
}
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Ici, je ne connais que l'identifiant mongo ( _id
) et le numéro de téléphone ( +1786543589455
) et je dois supprimer tout cet élément de tableau correspondant du document. c'est-à-dire que zéro élément indexé dans le tableau de téléphone correspond au numéro de téléphone et doit supprimer l'élément de tableau correspondant.
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
J'ai essayé avec la méthode de mise à jour suivante
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
Mais il supprime number: +1786543589455
de l'objet de tableau interne, pas zéro élément indexé dans le tableau de téléphone. Essayé avec pull
également sans succès.
Comment supprimer l'élément de tableau dans mongodb?
{ $pull: { 'contact.phone.$': { 'contact.phone.$.number': '+1786543589455' } } }
et{ $pull: { 'contact.phone': { 'contact.phone.$.number': '+1786543589455' } } }
sans succès. Ne comprend pas le fonctionnement des opérateurs positionnels ici?