#node.js #mongodb #express
Вопрос:
Я храню некоторые Article
в MongoDB. Под статьей я подразумеваю эту структуру:
const articleSchema = new Schema({
articleid: String,
title: String,
content: String,
date: String,
contributor: String,
upvotes: Number,
upvoters: [String], //<--------- I NEED HELP WITH THIS
downvotes: Number,
downvoters: [String]
})
Я создаю API в NodeJS. Используя эту конечную точку, я хочу добавить текущего пользователя, который будет добавлен в upvoters
массив в MongoDB:
router.post('/upvoted/:articleid/:userid', (req, res) => {
Article.findOneAndUpdate({ articleid: req.params.articleid }, { upvoters: ["req.params.userid"] }, (failure, success) => {
if (success) {
res.status(200).send("done")
}
else {
res.status(200).send("not done")
}
})
})
Моя проблема в том, что массив полностью заменяется. Я хочу добавить этого пользователя в тот же upvoters
массив в MongoDB.
Ответ №1:
Используйте $push
оператор для добавления элемента в массив.
Article.findOneAndUpdate({ articleid: req.params.articleid }, { $push: { upvoters: req.params.userid }}, (failure, success) =>...
Вы можете прочитать больше здесь
Комментарии:
1. сработало как заклинание. Я принимаю это как стандартный ответ
2. Однако я также просматривал ту же документацию, но я как-то пропустил эту вещь
3. что делать, если я хочу удалить один элемент?