2017-01-07 10 views
0
{ 
    "dictID" : "37528e10-6344-4d93-8a57-35af0bdb6b34", 
    "dictVersion" : 1, 
    "addMeasures" : [ 
     { 
      "measureId" : "f229ba18-0de8-47a1-8a87-88c95edd536a", 
      "userId" : "3966C3DD-8328-4F18-A061-02A01111763A", 
      "created" : "2017-01-07T05:47:22.512Z", 
      "ownerAction" : "NA" 
     } 
    ], 
    "deleteMeasures" : [ 
     { 
      "measureId" : "0b701469-1502-4de4-95de-1ee70ad6c577", 
      "userId" : "3966C3DD-8328-4F18-A061-02A01111763A", 
      "created" : "2017-01-07T05:47:35.193Z", 
      "ownerAction" : "NA" 
     }, 
     { 
      "measureId" : "443d1b97-95ae-4410-9302-da3edbad4004", 
      "userId" : "3966C3DD-8328-4F18-A061-02A01111763A", 
      "created" : "2017-01-07T05:47:36.062Z", 
      "ownerAction" : "NA" 
     }, 
     { 
      "measureId" : "aa1689c9-8df6-4bff-88a4-274a4f2dc2aa", 
      "userId" : "3966C3DD-8328-4F18-A061-02A01111763A", 
      "created" : "2017-01-07T05:47:37.075Z", 
      "ownerAction" : "NA" 
     } 
    ] 
} 

は私のMongoのコレクションであり、私は次のクエリを実行したい:更新特定のマップ上

db.getCollection('DataDictionaryReview').update(
    { 
     $and: [ 
      { dictID: "37528e10-6344-4d93-8a57-35af0bdb6b34" }, 
      { dictVersion: 1 }, 
      { "deleteMeasures.measureId": "aa1689c9-8df6-4bff-88a4-274a4f2dc2aa" }, 
      { "deleteMeasures.ownerAction": "NA" } 
     ] 
    }, 
    { 
     $set: { 
      "deleteMeasures.$.created": "2017-01-07T06:51:56.983Z",   
      "deleteMeasures.$.ownerAction": "Reject" 
     } 
    } 
) 

私はdeleteMeasuresの最後のマップが、毎回、クエリを更新したいです最初のdeleteMeasuresの地図を更新しています。

答えて

0

これは奇妙なことですが、クエリは大丈夫ですが、正しいインデックス値を取得するには$ elemMatchが必要です。

db.getCollection('DataDictionaryReview').update(
    { 
      dictID: "37528e10-6344-4d93-8a57-35af0bdb6b34", 
      dictVersion: 1 , 
      "deleteMeasures" : { $elemMatch : {"measureId": "aa1689c9-8df6-4bff-88a4-274a4f2dc2aa", "ownerAction": "NA" }} 
    }, 
    { 
     $set: { 
      "deleteMeasures.$.created": "2017-01-07T06:51:56.983Z",   
      "deleteMeasures.$.ownerAction": "Reject" 
     } 
    } 
) 
+0

ありがとうございました。その働き。 –

関連する問題