2

Rails アプリの ORM として Mongoid を使用していますが、グループ化の問題が 1 つあります。コレクション/モデルは基本的にタイムスタンプ付きのトランザクション ログであり、タイムスタンプの日付部分に基づいてグループ化を行いたいと考えています。

モデルは次のようになります。

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 に答える