обновление не работает в mongodb - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь обновить документ коллекции. Мне нужно обновить IsTripAllocated до true, чье CoverageTimesId равно "KhPVAtMrPL0BjVTdJvNOVVSQ" Я пытался, но я не могу это сделать.

Я пытаюсь с кодом ниже:

reportModel.update({ _id: req.body.ReportId }, 
{ $set: { "RouteDetails.$.CoverageTimes.$.IsTripAllocated" : true } }, 
function (error, success) {
        console.log(success);
});    

Вот моя коллекция:

{
"_id" : ObjectId("5b9f88f6c38c0030d0c487ec"),
"RouteDetails" : [ 
    {
        "CoverageTimes" : [ 
            {
                "RouteId" : "5b9b77d4d5879925a82f1894",
                "RouteName" : "VMS_I-78_EXPRESS_EB_50.6_NY_SIDE_HT_VIA_NJTPK",
                "CoverageTime" : "7:30 - 1:30",
                "CoverageTimesId" : "SJahlTQZWaLfSBK6Hv7zYBQp",
                "IsTripAllocated" : false,
                "IsActive" : true
             }, 
            {
                "RouteId" : "5b9b77d4d5879925a82f1894",
                "RouteName" : "VMS_I-78_EXPRESS_EB_50.6_NY_SIDE_HT_VIA_NJTPK",
                "CoverageTime" : "5:30 - 9:30", 
                "CoverageTimesId" : "VuKoP1WgQGqsmPPnk6IUGauO",
                "IsTripAllocated" : false,
                "IsActive" : true
            }
        ]
    }, 
    {
        "CoverageTimes" : [ 
            {
                "RouteId" : "5b9b7ae9d5879925a82f1896",
                "RouteName" : "I-78 WB MP 67.0 - 50.0 (local lanes)",
                "CoverageTime" : "9:45 - 15:45",
                "CoverageTimesId" : "KhPVAtMrPL0BjVTdJvNOVVSQ",
                "IsTripAllocated" : false,
                "IsActive" : true
            }, 
            {
                "RouteId" : "5b9b7ae9d5879925a82f1896",
                "RouteName" : "I-78 WB MP 67.0 - 50.0 (local lanes)",
                "CoverageTime" : "17:45 - 20:45",
                "DaysOfWeek" : "AllDays",
                "CoverageTimesId" : "rUAm565gb0WTAqNbUjlD6gem",
                "IsTripAllocated" : false,
                "IsActive" : true
            }
        ]
    }
],
"UpdateDate" : null
}

Я не знаю, что я делаю не так с моим запросом. Подскажите пожалуйста как мне этого добиться?

1 Ответ

0 голосов
/ 17 сентября 2018

Вы можете обновить по конкретному CoverageTimesId

db.getCollection('routes-detail').update(
  { _id:ObjectId("5b9f88f6c38c0030d0c487ec"),
  "RouteDetails.CoverageTimes.CoverageTimesId": "SJahlTQZWaLfSBK6Hv7zYBQp" 
  }, 
  { $set: { "RouteDetails.0.CoverageTimes.$.IsTripAllocated" : true } })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...