Berikut adalah struktur array
contact: {
phone: [
{
number: "+1786543589455",
place: "New Jersey",
createdAt: ""
}
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Di sini saya hanya tahu mongo id ( _id
) dan nomor telepon ( +1786543589455
) dan saya perlu menghapus seluruh elemen array yang sesuai dari dokumen. yaitu elemen nol yang diindeks dalam larik telepon dicocokkan dengan nomor telepon dan perlu menghapus elemen larik yang sesuai.
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
Saya mencoba dengan metode pembaruan berikut
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
Tapi itu menghapus number: +1786543589455
dari objek array dalam, bukan elemen yang diindeks nol dalam array telepon. Mencoba pull
juga tanpa hasil.
Bagaimana cara menghapus elemen array di mongodb?
{ $pull: { 'contact.phone.$': { 'contact.phone.$.number': '+1786543589455' } } }
dan{ $pull: { 'contact.phone': { 'contact.phone.$.number': '+1786543589455' } } }
tanpa hasil. Tidak mengerti cara kerja operator posisi di sini?