如何使用mongoid删除(deleted_at)字段?

时间:2013-12-07 09:45:38

标签: ruby mongodb mongoid

我可以使用where()方法获取一些数据,但如果使用Paranoia delete()方法删除某些记录(deleted_at字段设置为删除日期),则不会返回在结果中。

我可以使用collection.deleted.entries.find()使用Moped来获取这些记录,但我需要像往常一样使用Mongoid标准数据。

1 个答案:

答案 0 :(得分:1)

paranoia插件在模型上设置default_scope。

included do
  field :deleted_at, type: Time
  class_attribute :paranoid
  self.paranoid = true

  default_scope where(deleted_at: nil)
  scope :deleted, ne(deleted_at: nil)
  define_model_callbacks :restore
end

你可以告诉Mongoid不要使用unscoped来应用默认范围,Band.unscoped.where(name: "Depeche Mode") Band.unscoped do Band.where(name: "Depeche Mode") end 可以内联或阻止。

{{1}}