次のように、時間と分のコレクションに事前に集計されて保存されているメトリックのコレクションがいくつかあります。
"_id" : "12345CHA-2RU020130104",
"metadata" : {
"adaptor_id" : "CHA-2RU",
"processor_id" : NumberLong(0),
"date" : ISODate("2013-01-04T00:00:00Z"),
"processor_type" : "CHP",
"array_serial" : NumberLong(12345)
},
"hour" : {
"11" : 4.6665907,
"21" : 5.9431519999999995,
"7" : 0.6405864,
"17" : 4.712744,
---etc---
},
"minute" : {
"11" : {
"33" : 4.689972,
"32" : 4.7190895,
---etc---
},
"3" : {
"45" : 5.6883,
"59" : 4.792,
---etc---
}
分のコレクションには、各時間のサブドキュメントがあり、その分のメトリックの値を含む各分のエントリがあります。
私の質問は、集計フレームワークに関するものです。メトリックが特定のハイウォーター マークを上回った分をすべて見つけたい場合、このコレクションをどのように処理すればよいですか? 集計フレームワークを調査すると $unwind 関数が表示されますが、それは配列でのみ機能するようです..
マップ/リデュース機能はこれにより適していますか? これにより、ハイウォーターマークを超えるエントリを発行してカウントすることができました。