在Mongoose API文档中,有Model#remove,并且Model.remove。
有人可以用外行的话来解释这两者之间有什么区别?他们似乎接受不同的参数。为什么一个使用点,另一个使用哈希?除了API文档中的那个之外,我还需要一个更清晰的解释。
答案 0 :(得分:1)
Model#remove
是一个实例方法,Model.remove
是一个类方法。
换句话说,假设您有一个名为Users
的模型。要从属于该模型的集合中删除某些内容,您有两个选项(此示例有点人为):
Users.findOne(CONDITION, function(err, user) {
if (err) throw err;
user.remove(function(err) {
if (err) throw err;
// user is removed
});
});
这使用Model#remove
:您有一个存储在user
中的模型实例,并通过调用实例上的remove
方法从数据库中删除该实例。
另一种选择:
Users.remove(COND, function(err) {
if (err) throw err;
// user_s_ matching COND have been removed
});
基本上,Model#remove
用于删除您已有的实例的单个文档,Model.remove
用于删除可能符合特定条件的文档列表,或者文档你不一定要先从数据库中检索。