我正在尝试删除我的收藏中的重复文档。这是我的代码:
class Sites
include Mongoid::Document
store_in collection: "sites"
end
Sites.destroy_all(conditions: { _id: BSON::ObjectId("5685a45be4b06ab5911dcd12")})
这是返回的内容:
D, [2015-12-31T17:39:16.488657 #10126] DEBUG -- : MONGODB | localhost:27017 | rails.find | STARTED | {"find"=>"sites", "filter"=>{"conditions"=>{"_id"=>BSON::ObjectId('5685a45be4b06ab5911dcd12')}}}
D, [2015-12-31T17:39:16.488946 #10126] DEBUG -- : MONGODB | localhost:27017 | rails.find | SUCCEEDED | 0.000189083s
但是当我搜索文件时仍然存在:(
{"_id"=>BSON::ObjectId('5685a45be4b06ab5911dcd12'), "name"=>"StackOverflow", "title"=>"Stack Overflow", "type"=>"Forum", "url"=>"http://www.stackoverflow.com"}
如何使用Mongoid通过引用永久删除文档?
答案 0 :(得分:7)
使用5.x的Mongoid与我们习惯使用的AR方法更紧密相关,因此您的id字段的行为方式类似。
Sites.where(id: '5685a45be4b06ab5911dcd12').delete
要调用所有必要的回调,只需使用.destroy
即可。只知道这会将所有内容加载到内存中并且可能很昂贵。
Sites.where(id: '5685a45be4b06ab5911dcd12').destroy
答案 1 :(得分:2)
经过大量迭代后,这对我有用:
{{1}}
我发现Mongoid在排除故障时不是很有帮助。我必须做更多的试验和错误才能发现如何做事:(