Docs Menu
Docs Home
/ /

時系列データのクエリについて

MongoDB は、時系列データのストレージとクエリレイテンシを最適化するために、一致する metaFields を持つドキュメントをグループ化します。 metaField の選択は、アプリケーションでのクエリの最適化に最も大きな影響を与えます。

時系列コレクションのクエリは、標準の MongoDB コレクションのクエリと同じ方法で実行します。クエリの例と集計パイプラインの例については、「時系列コレクションのクエリ」を参照してください。クエリのベストプラクティスのリストについては、「クエリのベストプラクティス」を参照してください。

時系列データに対するクエリは通常、コレクション内の単一の時系列に焦点を当てます。たとえば、次のスキーマを使用した、株価データを追跡する時系列コレクションについて考えてみましょう。

{
_id: 573a1397f29313caabce8347,
"ticker": "MDB",
"timestamp": ISODate("2024-07-24T13:45:00.000Z"),
"price": 248.21,
"volume": 6930
}

コレクションには、次の設定があります。

timeseries: {
timeField: "timestamp",
metaField: "ticker",
granularity: "seconds"
}

MongoDB は、ticker 値が一致するドキュメントをグループ化します。すべてのドキュメントのすべてのフィールドで一致を確認する代わりに、サーバーは metaField(この場合は ticker)と照合するだけで、検索範囲を一意の時系列に絞り込むことができます。これは、単一の株式のアクティビティを検索するという、予想されるユースケースと一致します。MongoDB(MDB)の株式情報を検索するユーザーは、Amazon(AMZN)の結果を考慮する必要はありません。

時系列データをクエリするための 2 番目の主要な要素は時間です。MongoDB は同じ metaField 値と近い timeField 値の両方を持つドキュメントをグループ化するため、クエリの範囲はさらにバケットの範囲に絞り込まれます。最近のトランザクションはメモリ内に保存されるため、簡単にリアルタイムでデータをストリーミングできます。

戻る

コレクションのシャーディング

項目一覧