在rails中使用MongoID进行Complexe查询

时间:2011-11-17 15:02:35

标签: ruby-on-rails mongodb mongoid

我的问题如下:

我有一个Member模型,其last_visited_atnotified_at属性。

我想选择符合这些条件的对象:

(date_one< last_visited_at< date_two) notified_at< date_one date_two< notified_at

也可以写成:

date_one< last_visited_at last_visited_at< date_two notified_at< date_one date_two< notified_at


这是我尝试过的,但它不起作用:

我确定一个物体符合这些条件。

(MongoID,使用Rails控制台)

Member.where(:last_visited_at => {"$lte" => date_one, "$gte" => date_two})
      .any_of(
              :notified_for_not_signing_in_at => {"$gte" => date_one},
              :notified_for_not_signing_in_at => {"$lte" => date_two})
      .first

它返回错误

有没有人知道如何解决这个问题?

感谢您的帮助和时间,

1 个答案:

答案 0 :(得分:0)

any_of必须像这样写(作为哈希)

   .any_of( {:notified_for_not_signing_in_at => {"$gte" => date_one}},
            {:notified_for_not_signing_in_at => {"$lte" => date_two}})

any_of(
              :notified_for_not_signing_in_at => {"$gte" => date_one},
              :notified_for_not_signing_in_at => {"$lte" => date_two})