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

集計式の変数

項目一覧

  • ユーザー変数
  • システム変数

集計式、には、ユーザー定義変数とシステム変数の両方を使用できます。

変数には任意の BSON 型のデータを保持できます。変数の値にアクセスするには、変数名の先頭に二重ドル記号($$)を付けます。例: "$$<variable>"

変数がオブジェクトを参照している場合、オブジェクト内の特定のフィールドにアクセスするには、ドット表記を使用します。例: "$$<variable>.<field>"

ユーザー変数名には、ASCII 文字 [_a-zA-Z0-9] と任意の非 ASCII 文字を含めることができます。

ユーザー変数名は、小文字の ASCII 文字 [a-z] または非 ASCII 文字で始める必要があります。

MongoDB は、次のシステム変数を提供します。

変数
説明
NOW
現在の日時値を返す変数。 NOWは配置のすべてのノードに同じ値を返し、集計パイプラインのすべての段階で同じ値が維持されます。
CLUSTER_TIME

現在のタイムスタンプ値を返す変数。

CLUSTER_TIME レプリカセットとシャーディングされたクラスターでのみ使用できます。

CLUSTER_TIME 配置のすべてのノードに同じ値が返され、パイプラインのすべての段階で同じ値が維持されます。

ROOT
集計パイプライン ステージで現在処理されているルート ドキュメント、つまり最上位ドキュメントを参照します。
CURRENT

集計パイプライン ステージで処理されるフィールドパスの開始を参照します。 特にドキュメントがない限り、すべてのステージは ROOT と同じCURRENTで始まり

CURRENTは変更可能です。 ただし、 $<field>$$CURRENT.<field>と同等であるため、 CURRENTを再バインドすると$アクセスの意味が変わります。

REMOVE

欠損値として評価される変数。フィールドを条件付きで除外できます。$project では、変数 REMOVE に設定されたフィールドは出力から除外されます。

使用例については、「条件付きでフィールドを除外する」を参照してください。

バージョン 3.6 の新機能

DESCEND
$redact 式の許可された結果の 1 つ。
PRUNE
$redact 式の許可された結果の 1 つ。
KEEP
$redact 式の許可された結果の 1 つ。

Tip

以下も参照してください。

  • $let

  • $redact

  • $map

戻る

コマンドの比較