查询集合中的哈希/ bson文档字段

问题描述 投票:0回答:1

嗨,我有一个Mongoid模型,Spec,mongoid-history gem添加到它像这样:

class Spec
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::History::Trackable
  field :due_at, type: DateTime

  track_history on: [:due_at],
                :modifier_field => :modifier, # adds "referenced_in :modifier" to track who made the change, default is :modifier
                :version_field => :version,   # adds "field :version, :type => Integer" to track current version, default is :version
                :track_create   =>  false,    # track document creation, default is false
                :track_update   =>  true,     # track document updates, default is true
                :track_destroy  =>  false     # track document destruction, default is false

end

spec = Spec.first
hist = spec.history_tracks.first 
#=> { id: 123, modified: {due_at: 2017-06-12}, ... }

hist.modified.class 
#=> BSON::Document

我的问题是,我们如何通过q​​azxswpoi字段的存在来查询modified字段?失败的尝试看起来像这样:

due_at

提前致谢!!

ruby-on-rails mongoid
1个回答
0
投票

这应该工作:

spec.history_tracks.where(:'modified.due_at.exists' => true)
© www.soinside.com 2019 - 2024. All rights reserved.