FBFriendModel.find({
id: 333
}, function (err, docs) {
docs.remove(); //Remove all the documents that match!
});
上面的方法似乎不管用。记录还在那里。
有人能修好吗?
FBFriendModel.find({
id: 333
}, function (err, docs) {
docs.remove(); //Remove all the documents that match!
});
上面的方法似乎不管用。记录还在那里。
有人能修好吗?
当前回答
我非常喜欢异步/等待功能的Express/Mongoose应用程序中的这种模式:
app.delete('/:idToDelete', asyncHandler(async (req, res) => {
const deletedItem = await YourModel
.findByIdAndDelete(req.params.idToDelete) // This method is the nice method for deleting
.catch(err => res.status(400).send(err.message))
res.status(200).send(deletedItem)
}))
其他回答
Docs是一个文档数组。所以它没有一个mongoosemmodel .remove()方法。
可以分别迭代和删除数组中的每个文档。
或者—因为看起来您是通过(可能)唯一的id查找文档—使用findOne而不是find。
我更喜欢承诺符号,在这里你需要。
Model.findOneAndRemove({_id:id})
.then( doc => .... )
要删除单个文档,您可以使用deleteOne()或remove()与single:true和deleteMany()或remove()删除多个文档:-
使用deleteOne ()
syntax
Model.deleteOne({conditions},function(err){});
Example
Model.deleteOne({title:"hi"},function(err){
if(err)
{
res.send(err);
}
else{
res.send("deleted");
}
});
2.使用remove ()
syntax
Model.remove({conditions},{single:true},function(err){});
Example
Model.remove({title:"hi"},{single:true},function(err){
if(err)
{
res.send(err);
}
else{
res.send("deleted");
}
});
3.用deleteMany ()
syntax
Model.deleteMany({conditions},function(err){});
Example
Model.deleteMany({title:"hi"},function(err){
if(err)
{
res.send(err);
}
else{
res.send("deleted");
}
});
使用remove ()
syntax
Model.remove({conditions},function(err){});
Example
Model.remove({title:"hi"},function(err){
if(err)
{
res.send(err);
}
else{
res.send("deleted");
}
});
你可以直接在remove函数中使用查询,这样:
FBFriendModel.remove({ id: 333}, function(err){});
db.collection.remove(<query>,
{
justOne: <boolean>,
writeConcern: <document>
})