2

我使用 Mongoid 作为我的 Rails 应用程序的 ORM,并且遇到了一个分组问题。集合/模型基本上是带有时间戳的事务日志,我想根据时间戳的日期部分进行一些分组。

该模型如下所示:

class Bounty
  include Mongoid::Document
  field :ts, type: Time
  field :char_id, type: Integer
  field :bounty, type: Integer
  index({ ts: 1, char_id: 1 }, { unique: true })
end

...而我正在寻找的分组将相当于:

SELECT CAST(ts as date), char_id, sum(bounty) from bounties group by CAST(ts as date), char_id;

到目前为止,我能够通过聚合解决我的大部分组/总和问题,但在这种情况下,我不知道该怎么做。

4

1 回答 1

0

MongoDB 现在提供了一个聚合框架,使这更容易一些。Mongoid 还提供了一个到 MongoDB map/reduce 框架的接口,您必须使用它来执行这些聚合。参见聚合框架的这个描述和Mongoid对map/reduce接口的解释

于 2013-08-05T01:34:41.943 回答