此Mongoose删除方法似乎可以在HttpRequester中本地使用
router.delete('/', (req, res) => {
Book.findOneAndRemove({ title: req.body.title })
.then(() => res.json({ 'book deleted': 'success' }))
.catch(err => console.log('Couldn\'t delete book:', err));
}
);
,但是MongoLab集合仍显示该文档。如何也将其远程删除? findOneAndDelete()
没有任何改变。
完整的仓库位于https://github.com/ElAnonimo/booklist
答案 0 :(得分:1)
findOneAndRemove
之前有问题。
findByIdAndRemove
工作正常。
router.delete('/', (req, res) => {
Book.findOne({ title: req.body.title })
.then((doc) => if(doc)return Book.findByIdAndRemove(doc._id))
.then(() => res.json({ 'book deleted': 'success' }))
.catch(err => console.log('Couldn\'t delete book:', err));
}
);
甚至更好的是,您可以执行以下操作
router.delete('/', (req, res) => {
Book.deleteOne({ title: req.body.title })
.then(() => res.json({ 'book deleted': 'success' }))
.catch(err => console.log('Couldn\'t delete book:', err));
}
);
答案 1 :(得分:1)
您是否已更改与mLab上的MongoDB的URI连接?我想您已经更改了。
请确保使用mongodb://<dbuser>:<dbpassword>@ds12xxxx.mlab.com:27342/[database_name]
,而不是本地'mongodb://localhost/[database_name]'
如果您进行了更改,请使用deleteOne
https://mongoosejs.com/docs/api.html#model_Model.deleteOne,它运行良好。