Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

時系列コレクションの制限

項目一覧

  • サポートされていない機能
  • 制約
  • 集計 $out と $merge
  • distinct コマンド
  • ドキュメントのサイズ
  • 更新と削除
  • セカンダリ インデックス
  • 上限付きコレクション
  • コレクション タイプの変更
  • timeFieldmetaField の変更
  • の変更 granularity
  • シャーディング
  • シャーディング管理コマンド
  • トランザクション
  • スナップショットの分離

次の機能は、 時系列コレクションではサポートされていません。

測定ドキュメントの最大サイズは4 MB です。

集計パイプライン ステージ$out$mergeを使用して、別のコレクションから時系列コレクションに出力またはマージすることはできません。

時系列コレクションは一意のデータ構造であるため、MongoDB は個別の値に対して効率的にインデックスを作成できません。時系列コレクションで distinct コマンドまたは db.collection.distinct() ヘルパーメソッドを使用しないでください。代わりに、$group 集計を使用して、ドキュメントを個別の値でグループ化します。

たとえば、meta.project = 10 であるドキュメントに対して meta.type の値を個別でクエリするには、次のようにします。

db.foo.distinct("meta.type", {"meta.project": 10})

次を使用します。

db.foo.createIndex({"meta.project":1, "meta.type":1})
db.foo.aggregate([{$match: {"meta.project": 10}},
{$group: {_id: "$meta.type"}}])

これは、次のように機能します。

  1. meta.projectmeta.type複合インデックスを作成し、集計をサポートする。

  2. $match ステージが meta.project = 10 のドキュメントにフィルターをかける。

  3. $group ステージでは、meta.type をグループキーとして使用して、一意の値ごとに 1 つのドキュメントを出力する。

時系列コレクション内のドキュメントの最大サイズは 4 MB です。

MongoDB 5.0.5以降、 いくつかの削除操作と更新操作を実行できます。

削除 コマンドは、次の要件を満たす必要があります。

  • クエリはmetaFieldフィールド値にのみ一致する可能性があります。

  • 削除 コマンドでは、削除されるドキュメント数が制限されない場合があります。 justOne: falseまたはdeleteMany()メソッドで削除コマンドを使用する必要があります。

更新コマンドは、次の要件を満たしている必要があります。

  • クエリはmetaFieldフィールド値にのみ一致する可能性があります。

  • 更新コマンドでは、 metaFieldフィールドの値のみが変更できます。

  • 更新は、更新演算子式のみを含む更新ドキュメントを使用して実行する必要があります。

  • 更新コマンドでは、更新されるドキュメント数を制限しない場合があります。 multi: trueまたはupdateMany()メソッドでアップデート コマンドを使用する必要があります。

  • 更新コマンドではupsert: true が設定されない可能性があります。

古いデータを自動的に削除するには、自動削除(TTL)を設定します。

コレクションからすべてのドキュメントを削除するには、drop() メソッドを使用してコレクションを削除します。

1970-01-01T00:00:00.000Z の前または 2038-01-19T03:14:07.000Z の後に timeField タイムスタンプがあるドキュメントが時系列コレクションに含まれる場合、TTL(time to live) 機能によってコレクションからドキュメントが削除されることはありません。

TTL 削除の詳細については、「TTL を設定してコレクションのデータを期限切れにする」を参照してください。

timeFieldmetaFieldとして指定されたフィールドにセカンダリ インデックスを追加できます。 metaFieldフィールドのフィールド値がドキュメントの場合には、そのドキュメント内のフィールドにセカンダリインデックスを作成することもできます。

metaFieldは次のインデックス タイプをサポートしていません。

セカンダリインデックスは、次のインデックスプロパティをサポートしていません。

時系列コレクションをCapped コレクションとして作成することはできません。

コレクションのタイプは、コレクションを作成するときにのみ設定できます。

既存のコレクションから時系列コレクションにデータを移動するには、データを時系列コレクションに移行します。

You can only set a collection's timeField and metaField parameters when creating the collection. 作成後は、これらのパラメーターを変更することはできません。

granularityが設定されると、一度に 1 レベルずつのみ増やすことができます。 "seconds"から"minutes"または"minutes"から"hours"へ 。 その他の変更は許可されません。 granularity"seconds"から"hours"に変更する必要がある場合は、まずgranularity"minutes"に増やし、次に"hours"に増やします。

MongoDB 5.0.6以降、 シャーディングされた時系列コレクション がサポートされています。 シャーディングされた時系列コレクションを使用する場合、シャーディングされた時系列コレクションのgranularityは変更できません。

MongoDB 5.0.6 より前のバージョンでは、時系列コレクションをシャーディングできません。

シャーディングされた時系列コレクションでは、シャーディング管理コマンドを実行できません。

トランザクション の 時系列コレクション に書き込むことはできません。

注意

時系列コレクションからの読み取りはトランザクションでサポートされています。

読み取り保証"snapshot"を使用した時系列コレクションの読み取り操作は、読み取り操作内にコレクションに対する同時削除操作または名前変更操作がない場合にのみスナップショットの分離を保証します。 別の粒度設定を使用して同じ名前空間に時系列コレクションを再作成しても、完全なスナップショット分離は生成されません。

戻る

時系列