時系列コレクションの制限
項目一覧
サポートされていない機能
次の機能は、 時系列コレクションではサポートされていません。
Atlas Device Sync (Atlas Device Sync は、時系列コレクションが非対称同期されている場合にサポートされています。 詳細については、 「Atlas Device Syncの有効化」 を参照してください。)
制約
測定ドキュメントの最大サイズは4 MB です。
集計 $out と $merge
集計パイプライン ステージ$out
と$merge
を使用して、別のコレクションから時系列コレクションに出力またはマージすることはできません。
distinct コマンド
時系列コレクションは一意のデータ構造であるため、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"}}])
これは、次のように機能します。
ドキュメントのサイズ
時系列コレクション内のドキュメントの最大サイズは 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 を設定してコレクションのデータを期限切れにする」を参照してください。
セカンダリ インデックス
timeField
とmetaField
として指定されたフィールドにセカンダリ インデックスを追加できます。 metaField
フィールドのフィールド値がドキュメントの場合には、そのドキュメント内のフィールドにセカンダリインデックスを作成することもできます。
metaField
は次のインデックス タイプをサポートしていません。
セカンダリインデックスは、次のインデックスプロパティをサポートしていません。
上限付きコレクション
時系列コレクションをCapped コレクションとして作成することはできません。
コレクション タイプの変更
コレクションのタイプは、コレクションを作成するときにのみ設定できます。
既存のコレクションを時系列コレクションに変換することはできません。
時系列コレクションを別のコレクション タイプに変換することはできません。
既存のコレクションから時系列コレクションにデータを移動するには、データを時系列コレクションに移行します。
と の変更<a class=\" \" href=\" \" title=\" \"><svg xmlns=\" \" width=\" \" height=\" \" fill=\" \" viewbox=\" \" class=\" \" role=\" \" aria-label=\" \"><path fill=\" \" d=\" \"> <path fill=\" \" d=\" \">timeField
metaField
You can only set a collection's timeField
and metaField
parameters when creating the collection. 作成後は、これらのパラメーターを変更することはできません。
の変更 granularity
granularity
が設定されると、一度に 1 レベルずつのみ増やすことができます。 "seconds"
から"minutes"
または"minutes"
から"hours"
へ 。 その他の変更は許可されません。 granularity
を"seconds"
から"hours"
に変更する必要がある場合は、まずgranularity
を"minutes"
に増やし、次に"hours"
に増やします。
シャーディング
MongoDB 5.0.6以降、 シャーディングされた時系列コレクション がサポートされています。 シャーディングされた時系列コレクションを使用する場合、シャーディングされた時系列コレクションのgranularity
は変更できません。
MongoDB 5.0.6 より前のバージョンでは、時系列コレクションをシャーディングできません。
シャーディング管理コマンド
シャーディングされた時系列コレクションでは、シャーディング管理コマンドを実行できません。
トランザクション
トランザクション の 時系列コレクション に書き込むことはできません。
注意
時系列コレクションからの読み取りはトランザクションでサポートされています。
スナップショットの分離
読み取り保証"snapshot"
を使用した時系列コレクションの読み取り操作は、読み取り操作内にコレクションに対する同時削除操作または名前変更操作がない場合にのみスナップショットの分離を保証します。 別の粒度設定を使用して同じ名前空間に時系列コレクションを再作成しても、完全なスナップショット分離は生成されません。