Mongodb 在mongo数组中使用多个条件更新特定映射

Mongodb 在mongo数组中使用多个条件更新特定映射,mongodb,mongodb-query,Mongodb,Mongodb Query,以上是我的mongo集合,我要执行以下查询: { "dictID" : "37528e10-6344-4d93-8a57-35af0bdb6b34", "dictVersion" : 1, "addMeasures" : [ { "measureId" : "f229ba18-0de8-47a1-8a87-88c95edd536a", "userId" : "3966C3DD-8328-4F18-A061-

以上是我的mongo集合,我要执行以下查询:

{
    "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"
        }
    ]
}

我想更新
deleteMasures
的最后一个映射,但是每次查询更新
deleteMasures
的第一个映射时,这很奇怪,我觉得查询看起来没问题,但是我认为需要$elemMatch才能获得正确的索引值

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"
        }
    }
)
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"
        }
    }
)