如何使用 Node.js 猫鼬删除文档?

FBFriendModel.find({
    id: 333
}, function (err, docs) {
    docs.remove(); //Remove all the documents that match!
});

上述内容似乎不起作用。记录仍然存在。

有人可以修复吗?


答案 1

如果您不想迭代,请尝试

FBFriendModel.find({ id:333 }).remove( callback );

FBFriendModel.find({ id:333 }).remove().exec();

mongoose.model.find返回一个查询,它具有删除函数

Mongoose v5.5.3 - remove() 的更新现已弃用。使用 或deleteOne()deleteMany()findOneAndDelete() instead.


答案 2

更新: 猫鼬版 (5.5.3)

remove() 已弃用,您可以使用 deleteOne()、deleteMany() 或 bulkWrite() 代替。

到目前为止,您可以使用该方法直接删除文档,而不是找到文档然后将其删除,这在我看来更有效,更易于维护。"mongoose": ">=2.7.1".remove()

请参阅示例:

Model.remove({ _id: req.body.id }, function(err) {
    if (!err) {
            message.type = 'notification!';
    }
    else {
            message.type = 'error';
    }
});

更新:

至于 猫鼬 ,有几种方法可以让你直接删除文档,比如:3.8.1

  • remove
  • findByIdAndRemove
  • findOneAndRemove

有关详细信息,请参阅猫鼬 API 文档