복붙노트

[MONGODB] MongoDB를 : 업데이트 하위 문서

MONGODB

MongoDB를 : 업데이트 하위 문서

나는이 컬렉션이 있습니다 :

[{ "_id" : 7,
   "category" : "Festival",
   "comments" : [
        {
                "_id" : ObjectId("4da4e7d1590295d4eb81c0c7"),
                "usr" : "Mila",
                "txt" : "This is a comment",
                "date" : "4/12/11"
        }
    ]
}]

내가 원하는 건 이런 의견 안에 새로운 필드 삽입 추진하는 것입니다 :

[{ "_id" : 7,
   "category" : "Festival",
   "comments" : [
        {
                "_id" : ObjectId("4da4e7d1590295d4eb81c0c7"),
                "usr" : "Mila",
                "txt" : "This is a comment",
                "date" : "4/12/11",
                "type": "abc"  // find the parent doc with id=7 & insert this inside comments
        }
    ]
}]

어떻게 코멘트의 하위 문서 내부에 삽입 할 수 있습니다?

해결법

  1. ==============================

    1.당신은 $ 위치 연산자를 사용합니다

    당신은 $ 위치 연산자를 사용합니다

    예를 들면 :

    update({ 
           _id: 7, 
           "comments._id": ObjectId("4da4e7d1590295d4eb81c0c7")
       },{
           $set: {"comments.$.type": abc}
       }, false, true
    );
    

    나는 그것을 테스트하지 않았다하지만 난 당신을 위해 도움이 될 수 있기를 바랍니다.

    이 문서의 구조를 변경하려는 경우에는 사용할 필요가

    새로운 구조와 새로운 objNew를 삽입합니다. 자세한 내용은이를 확인

  2. ==============================

    2.$ 위치 연산자는 단지 '의견'필드가 배열이 아닌 경우 예상대로 작업을 것입니다. 영업 이익의 JSON의 형식이 잘못이지만,이 배열 될 수 것 같습니다.

    $ 위치 연산자는 단지 '의견'필드가 배열이 아닌 경우 예상대로 작업을 것입니다. 영업 이익의 JSON의 형식이 잘못이지만,이 배열 될 수 것 같습니다.

    문제는 조회와 일치하는 배열의 첫 번째 요소를 업데이트합니다 지금 그 MongoDB를합니다. 거기 불구하고 RFE 일치하는 모든 배열 요소를 업데이트하기위한 지원을 추가여 https://jira.mongodb.org/browse/SERVER-1243

    배열이 문제를 해결하려면 당신은 개별적으로 배열의 요소를 다음 일반 발견을 업데이트해야합니다.

  3. from https://stackoverflow.com/questions/5646798/mongodb-updating-subdocument by cc-by-sa and MIT license