반응형
아래 예제를 보면 players 에 배열이 있다.
해당 배열중 특정 조건 값을 삭제하고싶을때
(특정 json가 아닌, 전체 데이터중 배열 내부 값 검색후 삭제) 사용한다.
예를들어 배열내부의 "_id" : "eeecab6d-9bd6-4c61-b9f6-835ea33a0798" 로 검색하면 여러 로우가 나올 수 있다.
모든 로우의 내부배열 안의 데이터를 삭제시 사용한다.
다만 속도문제로, 배열 내부의 _id에 index를 걸어야 한다.
json포맷 예제
{
"_id" : ObjectId("5f473d9a956ee3a780ce007e"),
"userno" : NumberInt(30001124),
"Players" : [
{
"_id" : "7034b0c5-ad48-451b-b420-7dde25e606c6",
"DeviceTypeId" : "2",
"IsRegistered" : "Y",
"RegisteredDate" : NumberLong(1600136535),
"Profile" : NumberInt(0)
},
{
"_id" : "895848d4-300e-466c-a377-b7868f9a593c",
"DeviceTypeId" : "4",
"IsRegistered" : "Y",
"RegisteredDate" : NumberLong(1599528662),
"Profile" : NumberInt(0)
},
{
"_id" : "71395cb6-3f4a-4dce-a636-53a889fca34d",
"DeviceTypeId" : "4",
"IsRegistered" : "N",
"RegisteredDate" : NumberLong(1599552432),
"Profile" : NumberInt(0)
},
{
"_id" : "eeecab6d-9bd6-4c61-b9f6-835ea33a0798",
"DeviceTypeId" : "4",
"IsRegistered" : "Y",
"RegisteredDate" : NumberLong(1600152641),
"Profile" : NumberInt(0)
}
]
}
삭제쿼리
db.getCollection("pushuser").update(
{ "Players" : {$elemMatch: { _id: "ff6f938d-9496-4095-8749-02df8653db7b"} } },
{ $pull: { "Players" : { "_id": "ff6f938d-9496-4095-8749-02df8653db7b"} } }
, false,true
);
참고
배열 수정연산자
www.zerocho.com/category/MongoDB/post/57a46d287c4a5115004e97eb
www.tutorialspoint.com/how-to-remove-object-from-array-in-mongodb
중요
반응형
'DB > MongoDB' 카테고리의 다른 글
[mongo] 전체 컬럼 업데이트 (0) | 2022.05.02 |
---|---|
[MongoDB] 몽고DB Index 생성 및 이용 (0) | 2020.09.16 |
mongoDB 에 json 값 저장하기 ( spring ) (0) | 2020.01.06 |
[studio 3t] mongoDB group by 하는 법 , count 방법 (0) | 2019.10.15 |
Multiple MongoDB connections with Spring Boot (0) | 2019.02.22 |
댓글