集合

2017-06-20 61 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)