Как обновить элемент конкретного объекта в массиве других объектов в Mongoose - PullRequest
0 голосов
/ 12 октября 2018

Мне нужно обновить элемент объекта, который принадлежит массиву, внутри документа.В частности, «обновление статуса определенного заказа определенного пользователя в коллекции»

У меня есть имя пользователя для редактирования в коллекции, orderID заказа в массиве для редактирования иnewStatus ....

Вот схема и код мангуста ...

USER: {
  _id: objectId(as425as4526dc)
  username: 'admin',
  password: 'a61a8726ahf604s',
  fname: 'first',
  lname: 'last',
  date: '2018-9-9',
  orders: [
    {
       _id: objectID(012eoisadn3)
       status: 0,
       name: 'name'
       description: 'hello'
    }
  ]
 }

MONGOOSE

  const username = req.body.username;
  const orderID = req.body.id;
  const newStatus = req.body.status;

  User.update(
    {
      username: username,
      'orders._id': orderID
    },
    {
      $set:{
        'orders.$.status': newStatus
      }
    },
    function(err,docs){
     ...
     //Do Stuff Here
     ...
    }
  );

ВОЗВРАЩАЕТСЯ

{ n: 0,
  nModified: 0,
  opTime:
   { ts: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1539373723 },
     t: 1 },
  electionId: 7fffffff0000000000000001,
  ok: 1,
  operationTime: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1539373723 },
  '$clusterTime':
   { clusterTime: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1539373723 },
     signature: { hash: [Object], keyId: [Object] } } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...