我不确定我这样做是否天真,但我怀疑有一种更有效、更聪明的方法来处理这种情况。
假设我有一个文档实例,然后需要在进行一些逻辑检查后从 MongoDB 中删除它:
const post = await Post.findById(req.params.postId);
// Check whether the logged user owns this post
if (post._userId.equals(req.user._id)) {
await Post.findByIdAndRemove(req.params.postId);
有没有办法避免两次检索同一个文档?
所有型号都有
remove
,因此只需拨打 await post.remove()
。
https://mongoosejs.com/docs/4.x/docs/api.html#model_Model-remove
2024 年 3 月 7 日编辑:更新了链接以反映提问时的文档。
参考以下帖子的解决方案之一。
remove
现已弃用。
请使用 deleteOne()
deleteMany()
fineOneAndDelete()
来代替。
如何使用 Node.js Mongoose 删除文档?