Mongoose Model.remove(callback)不会从我的集合中删除任何东西
Mongoose Model.remove(callback) doesn't remove anything from my collection
我试图从我的Mongoose数据库中删除所有内容,但似乎没有任何工作。
我试过了
# CoffeeScript
MyModel.find().remove((err) -> console.log('purge callback'))
# JavaScript
MyModel.find().remove(function() { console.log('purge callback') })
和
# CoffeeScript
MyModel.find().remove({}, (err) -> console.log('purge callback'))
# JavaScript
MyModel.find().remove({}, function() { console.log('purge callback') })
即使删除.find()
步骤或添加.exec()
,我的回调也不会显示,我的数据仍然在这里。
我很确定我的模型和连接是ok的:
- 我可以在Mongo的日志中看到连接
- 我可以通过在其他地方操作相同的模型来添加文档
相关:我如何使用Node.js猫鼬删除文档?
编辑
我的问题是由没有显示的语法错误引起的。选择的答案有效,上面的代码也有效。如果有必要,欢迎版主删除我的问题。
这不是由Mongoose返回的"查询"对象,这里唯一有效的方法是.remove()
:
MyModel.remove(function(err,removed) {
// where removed is the count of removed documents
});
等于:
MyModel.remove({}, function(err,removed) {
});
另外,您如何确定没有文档被删除?可能在错误的集合中查找。默认情况下,Mongoose将集合名称以复数形式表示,除非您显式指定集合名称,如:
mongoose.Model( "MyModel", myModelSchema, "mymodel" )
如果没有第三个参数或在模式上以其他方式指定,则集合名称暗示为"mymodels"。因此,请检查您有正确的集合以及期望删除文档的正确数据库连接。
.remove函数只对Mongoose文档模型实例有效。下面是删除一个模型的示例:
Model.findOne({ field : 'toto'}, function (err, model) {
if (err) {
return;
}
model.remove(function (err) {
// if no error, your model is removed
});
});
但是,如果要删除具有特定查询的元素,则应该像使用find
函数一样使用remove
函数:
Model.remove({ title : 'toto' }, function (err) {
// if no error, your models are removed
});
相关文章:
- 每次我都要导入我的集合api来进行插入和dipling
- Shopify-加载'集合/全部'在我的首页
- 我的 Meteor 项目如何通过服务器端 MongoDB/集合查找查询可靠地显示信息
- 为什么我的骨干.js集合重置只是添加 1 个模型
- 为什么我的主干集合重置事件没有触发
- 为什么我的主干集合包含一个空的模型项
- 如何将数据作为字符串从我的集合中获取
- 我应该使用嵌套集合来组织我的backbone.js应用程序吗
- 如何为我的所有BackboneJS模型/集合REST调用添加一个基本URL
- 为什么我的数据库对象的集合为空
- 我的主干集合中的响应/模型之间存在冲突
- 如何存储标签从引导标签输入字段到我的集合…
- 在Backbone/胸腔应用程序中实例化我的集合的位置
- Mongoose Model.remove(callback)不会从我的集合中删除任何东西
- 尝试Backbone.js,我的集合对象没有加载数据
- 为什么我的MVC动作不是模型绑定我的集合
- js:填充我的集合,然后将其追加到页面
- 如何发送与' getElementsByClassName '创建的集合到我的控制器
- Backbone.js,require.js:我如何将我的模型、视图和集合转换为require.js模块
- 为什么这不是插入一个文档到我的MongoDB集合