나는 노드와 mongodb를 사용하고 있고, 추측 할 수없는 내 컬렉션의 배열에서 하위 문서를 제거하는 데 문제가 있습니다. 내 '카드 소지자'컬렉션에서MongodDB에서 배열에서 하위 문서 제거
샘플 문서처럼 보이는 (지면 다른 분야의 제거) :
{
"_id" : ObjectId("51ee899ec15d5aaff39d3352"),
"cards" : [
{
"rfid_id" : ObjectId("51ee899ec15d5aaff39d335a")
}
]
}
내가이 rfid_id와 하위 문서를 가지고있는 모든 카드 소지자 문서를 찾을 수있다 할 시도하고 있습니다 카드 배열의 값.
db.cardholders.update({},
{$pull:{ "cards": {"rfid_id": ObjectId("51ee899ec15d5aaff39d335a")}}},
false, false)
을 내가 구문 오류를하지 않는 동안, 내 컬렉션에 어떤 문서를 초래하지 않습니다 -이 문제에 어떤 도움을 크게 감상 할 수있다 :
은 내가 몽고 명령을 시도했습니다! 전체 문서 세부
편집 :
{
"_id" : ObjectId("51ee899ec15d5aaff39d3353"),
"first" : "first",
"last" : "last",
"email" : "email",
"phone" : "555 555 5555",
"userRole" : "su",
"cards" : [
{
"rfid_id" : ObjectId("51ee899ec15d5aaff39d3359")
}
],
"zones" : [
{
"zone_id" : ObjectId("51ee899ec15d5aaff39d3357")
}
]
}
특정 요소와 일치시키기 위해 rfid_id에서 $ elemMatch를 시도 했습니까? – drz
지금 사용했다 : db.cardholders.update ({}, {$ 풀 : { "카드": {$ elemMatch : {rfid_id : ObjectId가 ("51ee899ec15d5aaff39d335a")}}}}, 거짓 거짓) 같은 결과 (없음) –
원래 질문에있는 코드가 시도했을 때 성공적으로 카드 배열 요소를 제거했습니다. – JohnnyHK