Mongo - обновляет вложенный массив объектов с помощью _id - PullRequest
0 голосов
/ 17 сентября 2018

Как я могу получить доступ к массиву объектов с их собственным _id и обновить его с помощью Mongo / Mongoose?

Посмотрите на мой запрос на обновление и убедитесь, что что-то не так, потому что этот код не возвращаетлюбая ошибка, но она не обновляет поле

modelUser.findOneAndUpdate(
  { userName: body.author, "portfolio._id": body.id },
  { new: true },
  {
    $set: {  //I thing the problem it's over here
      "portfolio.$.profitLoss": profitLoss,
      "portfolio.$.percentage": percentage
    }
  },
  (err, user) => {
    if (err) {
      console.log(err);
    }
    console.log(`Done`);
  }
);

Это моя схема пользователя:

const userSchema = new Schema({
  ...stuff,
  portfolio: [
    {
      coin: String,
      amount: String,
      price: String,
      bought: Date,
      profitLoss: String,
      percentage: String
    }
  ],
});

В принципе, я думаю, что Монго просто не знает, какой из этих суб-документовследует обновить, я не знаю, есть ли что-то вроде findOneAndUpdate для подобъекта / документа по идентификатору.

1 Ответ

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

Только что изменили findOneAndUpdate на updateOne и все работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...