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

$changeStream(集計)

項目一覧

  • 定義
  • Stable API でのサポート
$changeStream

コレクション、データベース、またはクラスター全体に対して変更ストリームカーソルを返します。 集計パイプラインの最初のステージとして使用する必要があります。

$changeStreamステージの構文は次のとおりです。

{
$changeStream: {
allChangesForCluster: <boolean>,
fullDocument: <string>,
resumeAfter: <document>
startAfter: <document>
startAtOperationTime: <timestamp>
}
}
Parameter
説明

allChangesForCluster

任意: 変更ストリームにクラスター内のすべての変更を含めるかどうかを設定します。 adminデータベースでのみ開くことができます。

fullDocument

任意: update操作によって変更された場合、変更通知に完全なドキュメントのコピーを含めるかどうかを指定します。

  • default: 変更通知には、 update操作の完全なドキュメントは含まれません。

  • updateLookup: 変更通知には、変更によって変更されたドキュメントのコピーが含まれます。 このドキュメントは、現在の過半数がコミットしたドキュメントであるか、存在しない場合はnullです。

部分的な更新の場合は、変更通知にも変更の説明が記載されます。

resumeAfter

任意。 変更ストリームの論理的な開始点として再開トークンを指定します。 invalidateイベント後に変更ストリームを再開するために使用することはできません。

resumeAfter は、startAfter および startAtOperationTime と排他関係にあります。

startAfter

任意。 変更ストリームの論理的な開始点として再開トークンを指定します。 resumeAfterとは異なり、 startAfterは新しい変更ストリームを作成することで、 invalidateイベント後に通知を再開できます。

startAfter は、resumeAfter および startAtOperationTime と排他関係にあります。

startAtOperationTime

変更ストリームの論理的な開始点として時間を指定します。 resumeAfterまたはstartAfterフィールドとは併用できません。

変更ストリームはStable API V 1に含まれています。

集計ステージを使用して変更ストリーム カーソルを作成するには、 aggregateコマンドを実行します。

var cur = db.names.aggregate( [
{ $changeStream: {} }
] )

カーソルを開くには、 curを実行します。

変更ストリームが変更を検出すると、 next()メソッドは変更イベント通知を返します。 たとえば、 cur.next()の実行後、MongoDB は次のようなドキュメントを返します。

{
"_id": {
_data: "8262E2EE54000000022B022C0100296E5A100448E5E3DD01364019AE8FE8C6859527E046645F6964006462E2EE54C8756C0D5CF6F0720004"
},
"operationType": "insert",
"clusterTime": Timestamp({ t: 1659039316, i: 2 }),
"fullDocument": {
"_id": ObjectId("62e2ee54c8756c0d5cf6f072"),
"name": "Walker Percy"
},
"ns": {
"db": "test",
"coll": "names"
},
"documentKey": { _id: ObjectId("62e2ee54c8756c0d5cf6f072") }
}

変更ストリーム通知の詳細については、「変更イベント 」を参照してください。

戻る

$bucketAuto