다음은 배열 구조입니다.
contact: {
phone: [
{
number: "+1786543589455",
place: "New Jersey",
createdAt: ""
}
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
여기서는 mongo id ( _id)와 phone number ( +1786543589455) 만 알고 있으며 문서에서 해당 배열 요소 전체를 제거해야합니다. 즉, 전화 배열의 인덱스 요소가 0이면 전화 번호와 일치하며 해당 배열 요소를 제거해야합니다.
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
다음 업데이트 방법으로 시도했습니다.
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
그러나 그것은 number: +1786543589455전화 배열의 0 인덱싱 요소가 아닌 내부 배열 객체에서 제거 됩니다. pull성공하지 않고 시도했습니다 .
mongodb에서 배열 요소를 제거하는 방법은 무엇입니까?
{ $pull: { 'contact.phone.$': { 'contact.phone.$.number': '+1786543589455' } } }하고{ $pull: { 'contact.phone': { 'contact.phone.$.number': '+1786543589455' } } }성공하지 않고. 여기서 위치 연산자의 작동을 이해하지 못합니까?