ここで何かが足りないかもしれませんが、次のコレクションが必要だと思います:
{event_type, event_time, data_point1, data_point2}
クエリを実行できるようにします。このドキュメントは両方のクエリを非常に簡単に満たす必要があり、後者は集約フレームワーク ( $avg
) で行われます。
これにより、完全な自由形式のクエリが可能になります。
リンクされた投稿( http://www.quora.com/Time-Series/What-is-the-best-way-to-store-time-series-data-in-MongoDB)に混乱しただけかもしれません)。これは、データのトップレベルの結果を形成する事前集計の形式を示していますが、これは通常、オンデマンドで実行するのが非常に困難で困難です。
もちろん、お気づきのように、この方法ではクエリ機能が制限されますが、時系列が信じられないほど大きくなる可能性があり、自由形式のデータ セットに対するより複雑なクエリの集計フレームワークかどうかはわかりません。ここで、事前集計の出番です。最上位レベルのデータを下位レベルのデータに与えることで、効果的に集計がはるかに簡単になります。
したがって、その投稿では、@Jared が実際に彼が持っている最初のコレクションを示していることがわかります。これは次の詳細コレクションです。
{
timestamp: "Sun May 02 2010 19:07:40 GMT-0700",
metric1: 10,
metric2: 20,
}
これは、以下を含む詳細コレクションになります。
{event_type, event_time, data_point1, data_point2}
自由形式でクエリを実行できるコレクションですが、@Jared は、データをその詳細コレクションにレベル付けして他の集計を容易にする方法を示します。
したがって、問題が何であるかはわかりdata_points
ません。もちろん、適切なインデックスがあれば、詳細コレクションにすべてが保存され、無料のクエリを実行できます。