mongodb не удается найти совпадение

#javascript #mongodb

#javascript #mongodb

Вопрос:

  Enroll.updateOne(
      {
        "reviewers._id": userID,
      },
      {
        $set: {
          "reviewers.$.scores": req.body.scores,
        },
      },
      (errUpdate, resultUpdate) => {
        if (errUpdate) {
          return res.status(500).json({ success: false, error: errUpdate });
        } else {
          return res.status(200).json({ success: true, data: resultUpdate });
        }
      }
    );
  

Я новичок в mongodb. Выше приведена функция в api, которая используется для обновления определенных данных.
Схема регистрации будет выглядеть следующим образом:

 [
 {
  _id: xxxxx,
  otherdata: xxxx,
  reviewers: [ { _id: xxxx, otherdata: xxxx } , { _id: xxxx2, otherdata: xxxx2 } ]
 },
 {
 second enroll item...
 }
]

  

но когда я вызвал api, он возвращает n:0, что указывает на то, что совпадение не найдено. Я пропустил некоторые шаги здесь?

Комментарии:

1. Можете ли вы распечатать userID и убедиться, что тип совпадает со значением, хранящимся в базе данных? (строка против ObjectId)

2. я преобразовал идентификатор пользователя в идентификатор объекта mongo через const userId = mongoose . Типы. ObjectId(req.body.userId);