복붙노트

[MONGODB] 어떻게 MongoDB의 문서에서 기준과 일치하는 배열 요소를 업데이트하는 방법은 무엇입니까?

MONGODB

어떻게 MongoDB의 문서에서 기준과 일치하는 배열 요소를 업데이트하는 방법은 무엇입니까?

나는이 유사한 배열 필드와 문서를 가지고 :

{ 
  "_id" : "....",
  "Statuses" : [
    { "Type" : 1, "Timestamp" : ISODate(...) },
    { "Type" : 2, "Timestamp" : ISODate(...) },
    //Etc. etc.
  ]
}

어떻게 그 유형 값을 지정하여, 특정 상태 항목의 타임 스탬프 업데이트 할 수 있습니다?

해결법

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

    1.MongoDB를가 쉘에서 당신은이 작업을 수행 할 수 있습니다

    MongoDB를가 쉘에서 당신은이 작업을 수행 할 수 있습니다

    db.your_collection.update(
        { _id: ObjectId("your_objectid"), "Statuses.Type": 1 },
        { $set: { "Statuses.$.Timestamp": "new timestamp" } }
    )
    

    는 C #과 동등한 정도로

    var query = Query.And(
        Query.EQ("_id", "your_doc_id"),
        Query.EQ("Statuses.Type", 1)
    );
    
    var result = your_collection.Update( 
        query, 
        Update.Set("Statuses.$.Timestamp", "new timestamp", UpdateFlags.Multi,SafeMode.True)
    ); 
    

    당신이 전체 수집을 업데이트하고자한다면이 당신이 _id 필터를 제거 할 수 있습니다, 특정 문서를 업데이트합니다

  2. from https://stackoverflow.com/questions/7967184/how-do-i-update-array-elements-matching-criteria-in-a-mongodb-document by cc-by-sa and MIT license