Ruby Mongoid删除匹配ID的文档

Ruby Mongoid删除匹配ID的文档,ruby,mongoid,Ruby,Mongoid,我正在尝试删除收藏中的重复文档。这是我的密码: 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

我正在尝试删除收藏中的重复文档。这是我的密码:

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
但当我搜索时,文档仍然存在:(


如何使用Mongoid通过引用永久删除文档?

在进行了大量迭代之后,这对我来说非常有用:

Sites.destroy_all({ :_id => BSON::ObjectId('5685a45be4b06ab5911dcd12')})

我发现Mongoid在进行故障排除时没有太大帮助。我必须做更多的尝试和错误来发现如何做:(

Mongoid with 5.x与我们使用的AR方法更接近,因此您的id字段的行为方式类似

Sites.where(id: '5685a45be4b06ab5911dcd12').delete
要调用所有必要的回调,只需使用
.destroy
。只需知道这会将所有内容加载到内存中,而且成本可能会很高

Sites.where(id: '5685a45be4b06ab5911dcd12').destroy

{:_id=>BSON::ObjectId('5685a45be4b06ab5911dcd12')}
{u id:BSON::ObjectId('5685a45be4b06ab5911dcd12')}
解析为完全相同的散列AFAIK。
Sites.where(id: '5685a45be4b06ab5911dcd12').destroy