ruby - Mongoid 删除文档匹配ID

标签 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 | 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 通过引用永久删除文档?

最佳答案

5.x 的 Mongoid 更接近于我们习惯的 AR 方法,因此您的 id 字段的行为方式类似。

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

要调用所有必要的回调,只需使用 .destroy。只知道这会将所有内容加载到内存中并且可能很昂贵。

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

关于ruby - Mongoid 删除文档匹配ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34552202/

相关文章:

python - ruby 的 string inspect() 在 python 中的等价物是什么

pagination - Mongoid 分页问题

ruby-on-rails - Shrine::错误:存储:缓存未在 FileUploader 上注册

ruby-on-rails - 具有散列和数组字段类型的 mongoid admin

ruby-on-rails - ActionView::Template::Error(不兼容的字符编码:UTF-8 和 ASCII-8BIT)

ruby - 如何对嵌套哈希使用 fetch 方法?

ruby-on-rails - 如何在 Rails 中读取 POST 信息?

ruby-on-rails - 在 Heroku 上使用 MongoLab + Rails 4 + Mongoid 时出现 500 内部服务器错误

ruby-on-rails - 继承的资源和 Mongoid

ruby - 使用/usr/local 在 OS X Leopard 上安装 Ruby 1.9 - RVM 问题