以下のようなドキュメントを含むmongodbコレクションがあります。
[
{
:event => {:type => 'comment_created'},
:item => {:id => 10},
:created_at => {:t => '11:19:03 +0100 2010', :d=> 'Fri, 19 Nov 2010'}
}
,
{
:event => {:type => 'vote_created'},
:item => {:id => 10},
:created_at => {:t => '11:19:03 +0100 2010', :d => 'Fri, 19 Nov 2010'}
}
]
私が必要としているのは、各アイテムの最新のアクティビティ(当日)を集約した「ダッシュボード」を作成することです。結果は次のようになります。
{
:item_id => 10,
:events => {
:vote_created => [.. ordered list with latest 3 vote_created events/documents],
:comment_created => [.. ordered list with latest 3 comment_created events/documents ],
}
}
結果は、次のような「Facebookスタイル」の構文を構築するために使用されます。「マイク、ジョン、および他の3人が今日あなたのアイテムにコメントを追加しました。」
グループまたはmap-reduce関数を使用してこのデータを集約するにはどうすればよいですか?