Этот вопрос не отвечает на мой вопрос: Удалить элемент из массива массива в MongoDb
Я создал очень базовое c MEAN-приложение. Я создаю (или пытаюсь создать) механизм стекового потока. У меня есть статья, в которой есть положительные и отрицательные голоса. Вот скриншот записи mongodb. Таких записей много: ![enter image description here](https://i.stack.imgur.com/YSTiz.png)
Вы можете видеть, что есть массив upvoters
и downvoters
. У меня есть случай, когда текущий вошедший в систему пользователь, который ранее проголосовал за статью, теперь хочет отказаться от этой же статьи. Затем его имя должно быть перенесено из массива upvoters в массив downvoters
. Это включает в себя два шага:
- Удалить текущего зарегистрированного пользователя из
upvoters
массива - Добавить того же пользователя в
downvoters
массив.
Шаг № , 2 Я могу сделать. Но с шагом 1 я столкнулся с проблемой. Вот мой код Фокус на removeUserFromUpvotersList()
метод:
article.component.ts
export class ArticleComponent implements OnInit {
articleId : String = '';
article;
currentLoggedInUserId: string;
updatedVotes={
articleid: "",
upvotes: 0,
downvotes: 0,
upvoters: [],
downvoters: []
};
...
downvoted() {
console.log("downvoted");
this.removeUserFromUpvotersList();
}
removeUserFromUpvotersList() {
this.updatedVotes.upvoters.push(localStorage.getItem('userid'));
this._articleService.removeUserFromUpvotersList(this.updatedVotes, localStorage.getItem('userid'))
.subscribe (
res => {
},
err => console.log(err)
);
}
}
article.service.ts
export class ArticleService {
...
private _deleteFromUpvotersListURL = "http://localhost:3000/api/remove-from-upvoters-list";
...
removeUserFromUpvotersList(updatedArticle, id) {
return this.http.delete<any>(this._deleteFromUpvotersListURL+'/'+id, updatedArticle);
}
}
api.ts
router.delete('/remove-from-upvoters-list/:id', (req, res) => {
console.log("removing from upvoters list");
let userId = req.params.id;
let articleId = req.body.articleid;
Article.update({ articleid: articleId }, { $pull: { upvoters: userId } }).then(opResult => console.log(opResult));
Article.deleteOne({ userId: userId }, (error, userId) => {
if (error) {
console.log(error)
} else {
if (!article) {
res.status(401).send('something went wrong')
} else {
console.log('successfully deleted');
}
}
})
})
Я знаю, что мой API работает нормально, потому что я могу выполнять операции добавления и обновления. Пожалуйста, помогите мне с удалением.