查询具有日期范围的嵌入文档的文档在Mongoid中

时间:2012-09-24 14:53:11

标签: ruby-on-rails mongoid embed

假设我有一个用户文档,它将许多活动作为嵌入文档。每次用户在网站上执行某些操作时,都会创建一个活动文档(作为示例)。

class User
  include Mongoid::Document
  has_many :activities
end

class Activity
  include Mongoid::Document
  field :action_executed_at, type: DateTime
  belongs_to :user
end

我现在希望在今天之后查询所有具有活动的用户。这可以用Mongoid完成吗?我试过像:

这样的查询
User.where("activities.action_executed_at" => {"$gt" => DateTime.now.to_s})

甚至:

User.where("activities" => {
  "$elemMatch" => { 
     "action_executed_at" => {
       "$gt" => DateTime.now.to_s 
      } 
   } 
})

但他们总是回归并清空。

1 个答案:

答案 0 :(得分:2)

试试这个

User.where(:'activities.action_executed_at'.gt => DateTime.now)