Docs Menu
Docs Home
/ /

時系列コレクションの作成とクエリ

このページでは、時系列コレクションの作成とクエリの方法を説明します。提供されたコード例は、時間、温度、センサー情報を含むサンプル気象データを作成して操作します。

重要

機能の互換性バージョンの要件

時系列コレクションを作成できるのは、featureCompatibilityVersion が 5.0 以上に設定されているシステムのみです。

時系列コレクションには、次のフィールドが含まれます。

フィールド
タイプ
説明

timeseries.timeField

string

必須。各時系列ドキュメントの日付を含むフィールドの名前。 時系列コレクション内のドキュメントには、 timeFieldの値として有効な BSON 日付が必要です。

timeseries.metaField

string

任意。各時系列ドキュメントのメタデータを含むフィールドの名前。指定されたフィールドのメタデータは、一意の時系列ドキュメントにラベルを付けるために使用されるデータでなければなりません。メタデータを変更する必要はめったにありません。指定されたフィールドの名前を _id または timeseries.timeField と同じ名前にはできません。フィールドは任意のデータ型に指定できます。

metaFieldフィールドは任意ですが、メタデータを使用するとクエリの最適化が向上します。 たとえば、MongoDB metaFieldtimeFieldは新しいコレクションの フィールドと フィールドに 複合インデックス を自動的に作成します 。このフィールドに値を指定しない場合、データは時間のみに基づいてバケット化されます。

timeseries.granularity

integer

オプション。bucketRoundingSecondsbucketMaxSpanSecondsを設定する場合は使用しないでください。

可能な値はseconds (デフォルト)、minutes 、およびhoursです。

granularityを、連続する受信タイムスタンプ間の時間に最も近い値に設定します。これにより、MongoDB によるコレクションへのデータ保存方法が最適化され、パフォーマンスが向上します。

粒度とバケット間隔の詳細については、「時系列データの粒度の設定」を参照してください。

timeseries.bucketMaxSpanSeconds

integer

オプション。granularityの代替としてbucketRoundingSecondsと一緒に使用します。同じバケツ内のタイムスタンプ間の最大時間を設定する。

設定可能な値は 1~31536000 です。

バージョン 6.3 で追加

timeseries.bucketRoundingSeconds

integer

オプション。granularityの代替としてbucketMaxSpanSecondsと一緒に使用します。bucketMaxSpanSecondsと等しくなければなりません。

ドキュメントに新しいバケットが必要な場合、MongoDB ではドキュメントのタイムスタンプ値がこの間隔で切り捨てられ、バケットの最小時間が設定されます。

バージョン 6.3 で追加

expireAfterSeconds

integer

オプション。ドキュメントの有効期限が切れるまでの秒数を指定して、時系列コレクション内のドキュメントの自動削除を有効にします。MongoDB によって期限切れのドキュメントが自動的に削除されます。詳しくは「時系列コレクション(TTL)の自動削除の設定」を参照してください。

時系列コレクション固有ではない、その他の許可されたオプションは次のとおりです。

  • storageEngine

  • indexOptionDefaults

  • collation

  • writeConcern

  • comment

戻る

作成と構成

項目一覧