現在、MongoDB の MapReduce を使用して、次のような 1 時間ごとの広告ビュー数を生成しています。
{ _id : "4/1/2011 9:00 AM", value : { AdViews_Total : 4 } }
これは問題なく動作し、元のデータよりもはるかに迅速にクエリを実行できるコレクションで結果を取得します。今、私がやりたいことは次のようなものです:
{ _id : "4/1/2011 9:00 AM", value : { ByBrowser : { "Internet Explorer" : 4, "FireFox" : 4 } } }
そのためには、Reduce 操作で 2 つ以上のバラバラなドキュメントをマージできる必要があると思います。たとえば、次のようになります。
{ _id : "4/1/2011 9:00 AM", value : { ByBrowser : { "FireFox" : 3 } } }
{ _id : "4/1/2011 9:00 AM", value : { ByBrowser : { "FireFox" : 1 } } }
{ _id : "4/1/2011 9:00 AM", value : { ByBrowser : { "Internet Explorer" : 4 } } }
ブラウザ名が事前にわからないことを念頭に置いて、そのようなReduce操作がどのように見えるか知っている人はいますか?