ここに配列構造があります
contact: {
phone: [
{
number: "+1786543589455",
place: "New Jersey",
createdAt: ""
}
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
ここでわかっているのは mongo id( _id
) と phone number( +1786543589455
) だけなので、対応する配列要素全体をドキュメントから削除する必要があります。つまり、電話配列のゼロ インデックス要素は電話番号と一致し、対応する配列要素を削除する必要があります。
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
次の更新方法で試しました
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
number: +1786543589455
ただし、電話配列のゼロのインデックス付き要素ではなく、内部配列オブジェクトから削除 します。pull
成功せずに試してみました。
mongodbで配列要素を削除するには?