#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);