如何使用ActiveRecord或Mongoid编写此查询?

时间:2012-01-12 21:44:06

标签: ruby-on-rails ruby activerecord mongoid

Mongoid和ActiveRecord的两个接口都足够相似,所以我认为或者都可以使用。我需要一个查询来满足以下条件。

我需要知道过去10天内特定类型谷物的食用天数。谷物可以在一天内食用10次,但我只需要知道这一天至少吃过谷物的一次。因此,如果今天是11日,并且用户在5日吃了2次Fruity Pebbles,在7日吃了10次,在8日吃了一次,答案仍然是3。<​​/ p>

如何执行类似于ActiveRecord或Mongoid的查询?假设基类是'Cereal',并且有一个名为'type'的字段

2 个答案:

答案 0 :(得分:0)

不确定我明白了。 Cereal.where(:last_eaten.gt => Date.today - 10.day)或类似于mongoid的东西?我要和我的胆量在一起,可能不完全正确

答案 1 :(得分:0)

如果没有适当的模型样本,很难回答。

如果您的模型符合我的想法(类似于Katen的答案),这可能会有效:

Cereal.where("date > ?", Date.today - 10.days).select("distinct(date)").count

您可能需要稍微调整一下,但这基本上就是您必须要做的事情。