Hier ist die Array-Struktur
contact: {
phone: [
{
number: "+1786543589455",
place: "New Jersey",
createdAt: ""
}
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Hier kenne ich nur die Mongo-ID ( _id
) und die Telefonnummer ( +1786543589455
) und muss das gesamte entsprechende Array-Element aus dem Dokument entfernen. Das heißt, das nullindizierte Element im Telefonarray stimmt mit der Telefonnummer überein und muss das entsprechende Arrayelement entfernen.
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Ich habe es mit der folgenden Update-Methode versucht
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
Es wird jedoch number: +1786543589455
aus dem inneren Array-Objekt entfernt, nicht aus dem indizierten Element Null im Telefon-Array. Versucht mit pull
auch ohne Erfolg.
Wie entferne ich das Array-Element in Mongodb?
{ $pull: { 'contact.phone.$': { 'contact.phone.$.number': '+1786543589455' } } }
und{ $pull: { 'contact.phone': { 'contact.phone.$.number': '+1786543589455' } } }
ohne Erfolg versucht . Versteht das Arbeiten von Positionsoperatoren hier nicht?