İşte dizi yapısı
contact: {
phone: [
{
number: "+1786543589455",
place: "New Jersey",
createdAt: ""
}
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Burada yalnızca mongo kimliğini ( _id) ve telefon numarasını ( +1786543589455) biliyorum ve ilgili tüm dizi öğesini belgeden kaldırmam gerekiyor. ör. telefon dizisindeki sıfır dizinli öğe, telefon numarasıyla eşleşir ve karşılık gelen dizi öğesini kaldırması gerekir.
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Aşağıdaki güncelleme yöntemini denedim
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
Ancak number: +1786543589455, telefon dizisindeki sıfır dizinli öğeyi değil, iç dizi nesnesinden kaldırır . pullBaşarısız olarak da denendi .
Mongodb'da dizi elemanı nasıl kaldırılır?
{ $pull: { 'contact.phone.$': { 'contact.phone.$.number': '+1786543589455' } } }olup{ $pull: { 'contact.phone': { 'contact.phone.$.number': '+1786543589455' } } }olmadığını denedim . Burada konum operatörlerinin çalışmasını anlamıyor mu?