2016-11-25 2 views
0

$push и $set не работает вместе. Поля соответствуют $ нажимной добавления значения, но $ комплектов не обновляют значения соответствуют его полому

Parcel.findOneAndUpdate({ 
      $and: [{ 
       "parcelStatus.status": { 
        $ne: "undelivered" 
       } 
      }, { 
       "_id": req.body.consignmentNumber 
      }] 
     }, { 
      $push: { 
       "request": { 
        reason: req.body.request[0].reason, 
        date: new Date(), 
        requestType: 'Changing delivery Address' 
       } 
      } 
     }, { 
      $set: { 
       destAddress: req.body.destAddress 
      } 
     }, function(err, parcel) { 
      console.log("oldParcel" + JSON.stringify(parcel)); 
+0

Второго аргумент должен быть объектом модификации. Объедините '$ push' и' $ set' в один объект. – hyades

+0

Спасибо, не могли бы вы внести изменения, я новичок в монго. –

ответ

0

Третьих пары, чтобы передать параметры. Вы должны использовать $set и $push как во вторых парах

может попробовать это:

Parcel.findOneAndUpdate({$and :[{"parcelStatus.status": {$ne:"undelivered"}},{"_id" : req.body.consignmentNumber}]}, 
    { 
    $push:{"request": {reason: req.body.request[0].reason, 
     date: new Date(), 
     requestType: 'Changing delivery Address'}}, 
    $set: {destAddress : req.body.destAddress} 
    }, 
    {new:true}, 
    function(err, parcel) { 
    console.log("newParcel" + JSON.stringify(parcel)); 
    }) 
+0

Большое вам спасибо. –

+0

если работа может принять @ShashankAgrawal –

Смежные вопросы