mongo中的嵌套字段更新(在更新查询中更新)

时间:2020-03-30 15:31:04

标签: node.js mongodb mongodb-query

使用下面的查询能够根据条件设置 status.id,status.name 。但是同时,我需要更新里程碑数组中某个里程碑的里程碑completedDate,该里程碑数组在同一文档中的里程碑ID为-1。

db.collection.findOneAndUpdate({ formData: { $elemMatch: { value: todayDate } } }, { $set: { 'status.id': -1, 'status.name': 'Closed' } }, { multi: true }, function (err, result) {

});

示例文档:

{
    "_id" : ObjectId("5e7defd5cb90e73710d0a9de"),
    "status" : {
        "id" : NumberInt("-2"),
        "name" : "SR_EXECUTION STARTED"
    },
    "milestone" : [
        {
            "milestoneID" : NumberInt("-1"),
            "completedDate": ????
        },
        {
            "milestoneID" : NumberInt("0")
            "currentMilestone" : false
        },
        {
            "milestoneID" : NumberInt("-2"),
            "currentMilestone" : false
        }
    ],
    "cost" : NumberInt("0"),
    "formData" : [
        {
            "label" : "Name",
            "value" : "Test"
        },
        {
            "label" : "Description",
            "value" : "test"
        },
        {
            "label" : "Start Date",
            "value" : "2020-Mar-27"
        },
        {
            "label" : "End Date",
            "value" : "2020-Apr-30"
        }
    ]
}

0 个答案:

没有答案