Я пытаюсь обновить массив избранных станций в своей базе данных, однако я просто не могу его обновить? Я искал целую вечность, чтобы попытаться найти решение, но, похоже, ничего не помогло.
У меня есть идентификатор, сохраненный в Cook ie, и я отправляю его в теле, когда сделан запрос на обновление. ..
"selected" - это массив объектов. это то, что нужно будет заменить содержимое свойства favouriteStations или добавить его, если оно пустое.
структура базы данных выглядит следующим образом:
"id": id,
"email: "test@test",
"password": "test",
"userInfo": {
"firstName": "test",
"lastName": "test",
"favouriteStations": [{array i want to replace}]
}
Я пробовал много разных комбинации, однако это то, что у меня есть, и это не работает
app.post("/api/update", (req, res) => {
console.log("updating user details");
const { id, selected } = req.body;
UserModel.findOneAndUpdate(
{ _id: id },
{ userInfo: { favouriteStations: { $set: selected } } },
{ useFindAndModify: false }
)
.then((user, err) => {
if (err) {
console.log("an error?");
res.status(500).json({
error: "Server error",
});
} else if (!user) {
console.log("user not exists?");
res.status(401).json({
error: "Incorrect credentials",
});
} else {
console.log("updated?");
console.log(user);
}
})
.catch((err) => {
console.log(err);
});
});