【问题标题】:ActiveRecord has a MyModel.delete(...) method, while Mongoid does not?ActiveRecord 有一个 MyModel.delete(...) 方法,而 Mongoid 没有?
【发布时间】:2012-09-06 13:23:31
【问题描述】:

我们目前正在从 MySQL 迁移到 MongoDB,我偶然发现了以下问题:

MyModel.destroy(params[model_ids]) # Remove many objects at once by passing an array of IDs

这适用于 ActiveRecord,但不适用于 MongoDB:我必须遍历 ID,找到它,然后在实例化对象上调用 delete 方法:

MyModel.find(params[model_ids]).each do |item|
  item.destroy
end

这是正确的方法吗? Mongoid 不提供上述功能是否有特殊原因?

谢谢!

【问题讨论】:

  • 旁注:你宁愿总是使用destroy 而不是delete
  • 你说得对,我刚刚纠正了它。更多信息见here
  • 所以你应该有可用的方法:)
  • Person 不是 CriteriaPerson.where...(或任何范围)是一个

标签: ruby-on-rails activerecord mongoid


【解决方案1】:

你可以试试这个

MyModel.where(:_id.in => params[model_ids]).destroy

在 Mongoid 中,您可以根据条件运行 destroy 方法。

【讨论】:

  • 看起来像是我的 cmets 的复制/粘贴
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 2013-11-15
  • 2013-02-03
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
相关资源
最近更新 更多