Используя приведенный ниже запрос, я могу установить status.id, status.name в зависимости от условия. Но в то же время мне нужно обновить milestone completeDate для конкретного этапа в массиве milestone, где его milestoneID равен -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"
}
]
}