source

MongoDB의 배열에 중첩된 하위 문서 제거

factcode 2023. 6. 23. 22:28
반응형

MongoDB의 배열에 중첩된 하위 문서 제거

제거할 항목:

{
"val" : NumberLong(200),
"chId" : 2,
"reqSys" : "222220005031",
"old" : NumberLong(223),
"isRb" : false
},

여기서:

{
"_id" : ObjectId("52d7c25480f0a83293adbbbc"),
"d" : 2014001,
"m" : 123456789,
"topups" : {
    "data" : [
            {
                    "val" : NumberLong(200),
                    "chId" : 2,
                    "reqSys" : "222220005031",
                    "old" : NumberLong(223),
                    "isRb" : false
            },
            {
                    "val" : NumberLong(150),
                    "chId" : 2,
                    "reqSys" : "222220005031",
                    "old" : NumberLong(166),
                    "isRb" : false
            }
    ],
    "total" : {
            "cnt" : 2,
            "revenue" : NumberLong(3500000)
    }
}

문의하여 객체를 찾고 싶습니다.{d:2014001, m:123456789}그리고 하나의 명령으로 가능한 경우 "val":200인 데이터 배열의 전체 개체를 제거합니다.하지만 그렇지 않으면 여러 명령도 사용할 수 있습니다.$pull과 $pullAll을 사용해봤지만 뭔가가 누락되었습니다.

하위 문서를 제거하려면 $pull을 사용합니다.

이 쿼리는 중첩된 하위 문서에서 제거됩니다.

 db.collection.update({ d : 2014001 , m :123456789},
                      {$pull : { "topups.data" : {"val":NumberLong(200)} } } )

언급URL : https://stackoverflow.com/questions/22065314/remove-a-subdocument-nested-in-an-array-in-mongodb

반응형