集合

2017-06-20 58 views
0

您好在查询hash/BSON文档字段我有一个Mongoid型号,规格,与mongoid历史瑰宝加入到这样的:集合

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 

我的问题是,怎样才能查询modified字段是否存在其due_at字段?失败的尝试看起来像这样:

spec.history_tracks.where(:'modified.due_at.exists' => true) 

在此先感谢!

回答

0

这应该工作:

spec.history_tracks.not.where('modified.due_at' => nil)