Shoken Startup Blog

KitchHike Founder/CTO

Mongoidで日付の期間を指定して検索する方法

RailsからMongoidを使って、日付の期間を指定して検索する方法。

環境

  • Rails 4.1
  • Ruby 2.1.0
  • Mongoid 4.0.0.beta1
  • MongoDB 2.4.8

3日以内に作成されたユーザーを検索

この3つの書き方ができる。

User.where( :created_at => { "$gte" => Time.now.ago(3.days) }
User.where( :created_at.gte => Time.now.ago(3.days) )
User.gte( :created_at => Time.now.ago(3.days) )

他の条件を追加して絞り込むパターン

localeがjaで、3日以内に作成されたユーザーを検索

User.where( :locale => 'ja' ).gte( :created_at => Time.now.ago(3.days) )

公式ドキュメント

Mongoid: Querying