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

集計パイプライン演算子

項目一覧

  • 互換性
  • 式演算子
  • 算術式演算子
  • 配列式演算子
  • ブール式演算子
  • 比較式演算子
  • 条件式演算子
  • カスタム集計式演算子
  • データサイズ演算子
  • 日付式演算子
  • リテラル式演算子
  • その他の演算子
  • オブジェクト式演算子
  • 集合式演算子
  • 文字列式演算子
  • テキスト式演算子
  • 三角法の式演算子
  • 型式演算子
  • アキュムレータ ($group, $bucket, $bucketAuto, $setWindowFields
  • アキュムレーター(他のステージ)
  • 変数式演算子
  • ウィンドウオペレーター
  • 式演算子のアルファベット順のリスト

集計パイプライン演算子は、MongoDB Atlas およびオンプレミス環境と互換性があります。

注意

構文や例など、特定の演算子の詳細については、演算子のリファレンスページへのリンクをクリックしてください

以下の環境でホストされている配置メントには、集計パイプライン演算子を使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

これらの式演算子は、 集計パイプライン ステージ で使用する 式 を構築するために使用できます。

演算子式は、引数を取る関数と似ています。一般的に、これらの式は引数の配列をとり、次のような形式になります。

{ <operator>: [ <argument1>, <argument2> ... ] }

演算子が引数を 1 つだけ受け入れる場合は、引数リストを指定する外側の配列を省略できます。

{ <operator>: <argument> }

引数がリテラル配列の場合の解析のあいまいさを避けるには、リテラル配列を $literal 式で囲むか、引数リストを指定する外側の配列を保持する必要があります。

算術式は、数値に対して数学演算を実行します。一部の算術式では、日付の算術演算もサポートできます。

名前
説明
数値の絶対値を返します。
数値を加算して合計を返すか、数値と日付を加算して新しい日付を返します。数値と日付を加算する場合は、数値をミリ秒として扱います。任意の数の引数式を受け入れますが、日付に解決できる式は最大で 1 つだけです。
指定した数値以上の最小の整数を返します。
最初の数値を 2 番目の数値で除算した結果を返します。2 つの引数式を受け入れます。
e を指定された指数に上げます。
指定した数値以下の最大の整数を返します。
数値の自然対数を計算します。
指定した基数の数値のログを計算します。
数値の対数基数 10 を計算します。
最初の数値の余りを 2 番目の数値で割った値を返します。2 つの引数式を受け入れます。
数値を乗算して積を返します。任意の数の引数式を受け入れます。
指定した指数まで数値を上げます。
数値を整数または指定された小数点以下の桁に丸めます。
平方根を計算します。
最初の値から 2 番目の値を減算した結果を返します。2 つの値が数値の場合は、差を返します。2 つの値が日付の場合は、ミリ秒単位で差を返します。2 つの値が日付とミリ秒単位の数値の場合、結果の日付を返します。2 つの引数式を受け入れます。2 つの値が日付と数値の場合、数値から日付を減算しても意味がないため、最初に日付引数を指定します。
数値を整数または指定された小数点以下の桁に切り捨てます。
名前
説明
指定された配列インデックスの要素を返します。
キーと値のペアの配列をドキュメントに変換します。
配列を連結して、連結された配列を返します。
配列のサブセットを選択して、フィルター条件に一致する要素のみを含む配列を返します。
最初の配列要素を返します。 $firstアキュムレータとは異なります。
指定した値が配列内にあるかどうかをブール値で返します。
配列内で指定された値の出現を検索し、最初に出現した位置の配列インデックスを返します。部分文字列が見つからない場合は、 -1を返します。
オペランドが配列であるかどうかを判断します。ブール値を返します。
最後の配列要素を返します。 $lastアキュムレータとは異なります。
配列の各要素に部分式を適用し、結果の値の配列を順番に返します。名前付きパラメータを受け入れます。
ドキュメントを、キーと値のペアを表すドキュメントの配列に変換します。
ユーザー定義の入力に従って、整数のシーケンスを含む配列を出力します。
配列内の各要素に式を適用し、それらを 1 つの値に結合します。
要素を逆の順序の配列を返します。
配列内の要素の数を返します。引数として 1 つの式を受け入れます。
配列のサブセットを返します。
2 つの配列を結合します。

ブール式は引数式をブール値として評価し、結果としてブール値を返します。

ブール式は、 falseブール値に加えて、次のnull0 、およびundefined値をfalseとして評価します。ブール式は、ゼロ以外の数値と配列を含む他のすべての値をtrueとして評価します。

名前
説明
すべての式が true と評価された場合にのみ true を返します。任意の数の引数式を受け入れます。
ブール値関数は、引数で指定した式と反対の真偽値を返します。単一の引数式を受け入れます。
いずれかの式がtrueと評価された場合はtrueを返します。任意の数の引数式を受け入れます。

比較式はブール値を返しますが、$cmp は数値を返します。

比較式は 2 つの引数式を取り、異なる型の値に対して指定された BSON 比較順序を使用して、値と型の両方を比較します。

名前
説明
2 つの値が等しい場合は0を返し、最初の値が 2 番目の値より大きい場合は1を返し、最初の値が 2 番目の値より小さい場合は-1を返します。
値が等しい場合はtrueを返します。
最初の値が 2 番目の値より大きい場合はtrueを返します。
1 番目の値が 2 番目の値以上であれば true を返します。
最初の値が 2 番目の値より小さい場合はtrueを返します。
最初の値が 2 番目の値以下の場合に true を返します。
値が等価でない場合は true を返します。
名前
説明
1 つの式を評価し、その結果に応じて他の 2 つの式のいずれかの値を返す三項演算子。順序付けられたリスト内の 3 つの式または 3 つの名前付きパラメータのいずれかを受け入れます。
最初の式の null 以外の結果を返すか、最初の式の結果が null の場合は 2 番目の式の結果を返します。null 結果には、未定義の値または欠落したフィールドのインスタンスが含まれます。引数として 2 つの式を受け入れます。2 番目の式の結果は null にすることができます。
一連のケース式を評価します。trueに評価される式が見つかると、 $switch指定された式を実行し、制御フローを抜け出します。
名前
説明
カスタム累算器関数を定義します。
カスタム関数を定義します。

次の演算子は、データ要素のサイズを返します。

名前
説明
指定された文字列またはバイナリ データ値の内容のサイズをバイト単位で返します。
指定されたドキュメントのサイズをバイト単位で返します(つまりbsontype Object )。(BSON としてエンコードされた場合)

以下の演算子は、日付オブジェクトまたは日付オブジェクトの構成要素を返します。

名前
説明
日付オブジェクトにいくつかの時間単位を追加します。
2 つの日付の差を返します。
日付の構成要素を指定して BSON Date オブジェクトを構築します。
日付/時刻文字列をオブジェクトに変換します。
日付オブジェクトからいくつかの時間単位を減算します。
日付の構成部分を含むドキュメントを返します。
日付を書式設定された文字列として返します。
日付を切り捨てます。
日付の日付を 1 から 31 までの数値で返します。
日付の曜日を 1(日曜日)から7(土曜日)までの数値として返します。
日付の年間通算日を 1 ~ 366(閏年)の数値として返します。
日付の時間を 0 から 23 までの数値で返します。
曜日番号を ISO 8601 形式で返します。範囲は1(月曜日)から7(日曜日)までです。
1から53までの範囲の ISO 8601 形式の週番号を返します。週番号は、その年の最初の木曜日を含む週(月曜日から日曜日)の1から始まります。
ISO 8601 形式の年番号を返します。年は第 1 週の月曜日(ISO 8601)から始まり、最終週の日曜日(ISO 8601)に終わります。
日付のミリ秒を 0 から 999 までの数値で返します。
日付の分を 0 から 59 までの数値で返します。
日付の月を 1(1 月)から 12(12 月)までの数値として返します。
日付の秒数を 0 から 60(うるう秒)までの数値として返します。
値を日付に変換します。
日付の週番号を 0(年の最初の日曜日に先行する部分的な週)から 53(うるう年)までの数値で返します。
日付の年を数値で返します (例:2014)。

以下の算術演算子は日付オペランドを取ることができます。

名前
説明
数値と日付を加算して、新しい日付を返します。数値と日付を加算する場合は、数値をミリ秒として扱います。任意の数の引数式を受け入れますが、日付に解決できる式は最大で 1 つだけです。
最初の値から 2 番目の値を減算した結果を返します。2 つの値が日付の場合は、ミリ秒単位で差を返します。2 つの値が日付とミリ秒単位の数値の場合、結果の日付を返します。2 つの引数式を受け入れます。2 つの値が日付と数値の場合、数値から日付を減算しても意味がないため、最初に日付引数を指定します。
名前
説明
解析せずに値を返します。集計パイプラインが式として解釈できる値に使用します。例えば、フィールドパスとして解析されないようにするには、ドル記号 ( $ ) で始まる文字列に$literal式を使用します。
名前
説明

ドキュメントから指定したフィールドの値を返します。$getFieldを使用すると、名前にピリオド( . )が含まれるフィールドやドル記号( $ )で始まるフィールドの値を取得できます。

バージョン 5.0 で追加

0 から 1 の間のランダムな浮動小数点数を返します。
指定されたレートでドキュメントをランダムに選択します。選択されるドキュメントの正確な数は実行ごとに異なりますが、選択される数量は、ドキュメントの総数に対するパーセンテージで表されるサンプルレートに近似します。
名前
説明

複数のドキュメントを 1 つのドキュメントに結合します。

バージョン 3.6 の新機能

ドキュメントを、キーと値のペアを表すドキュメントの配列に変換します。

バージョン 3.6 の新機能

ドキュメント内の指定したフィールドを追加、更新、または削除します。$setFieldを使用すると、名前にピリオド( . )が含まれるフィールドやドル記号( $ )で始まるフィールドを追加、更新、または削除できます。

バージョン 5.0 で追加

セット式は、配列をセットとして扱い、配列に対してセット演算を実行します。セット式は、各入力配列内の重複するエントリと要素の順序を無視します。

セット操作がセットを返す場合、操作は結果内の重複を除外して、ユニークなエントリのみを含む配列を出力します。出力配列内の要素の順序は指定されていません。

セットにネストされた配列要素が含まれている場合、セット式はネストされた配列に下降せず、最上位の配列を評価します。

名前
説明
セットのどの要素もfalseと評価されない場合はtrueを返し、そうでない場合はfalseを返します。単一の引数式を受け入れます。
セットのいずれかの要素がtrueと評価された場合はtrueを返します。それ以外の場合はfalseを返します。単一の引数式を受け入れます。
最初のセットには表示されるが 2 番目のセットには表示されない要素を含むセットを返します。 相対値 を実行します 最初のセットに対する 2 番目のセットの 。厳密に 2 つの引数式を受け入れます。
入力セットが同じ明確な要素を持つ場合は true を返します。2 つ以上の引数式を受け入れます。
すべての入力セットに現れる要素を含むセットをします。任意の数の引数式を受け入れます。
Returns true if all elements of the first set appear in the second set, including when the first set equals the second set; i.e. not a strict subset. 厳密に 2 つの引数式を受け入れます。
入力セットのいずれかに現れる要素を含むセットを返します。

文字列式は、$concatを除き、ASCII 文字の文字列に対してのみ明確に定義された動作を持ちます。

$concat 動作は、使用される文字に関係なく明確に定義されています。

名前
説明
任意の数の文字列を連結します。
日付/時刻文字列をオブジェクトに変換します。
日付を書式設定された文字列として返します。
文字列から部分文字列を検索し、最初に出現した文字列の UTF-8 バイトインデックスを返します。部分文字列が見つからない場合は、 -1を返します。
文字列から部分文字列を検索し、最初に出現した文字列の UTF-8 コードポイントのインデックスを返します。部分文字列が見つからない場合は、 -1
文字列の先頭から空白または指定した文字を削除します。
正規表現(regex)を文字列に適用し、最初に一致したサブストリングに関する情報を返します。
正規表現(regex)を文字列に適用し、一致したすべての部分文字列に関する情報を返します。
正規表現(regex)を文字列に適用し、一致するものが見つかったかどうかを示すブール値を返します。
指定された入力内の一致した文字列の最初のインスタンスを置き換えます。
指定された入力内の一致した文字列のすべてのインスタンスを置き換えます。
文字列の末尾から空白または指定した文字を削除します。
文字列を区切り文字に基づいて部分文字列に分割します。部分文字列の配列を返します。区切り文字が文字列内に見つからない場合は、元の文字列を含む配列を返します。
文字列内の UTF-8 でエンコードされたバイト数を返します。
UTF-8コードポイントの数を文字列で返します。
大文字と小文字を区別しない文字列比較を行い、2 つの文字列が等しい場合は 0、最初の文字列が 2 番目の文字列より大きい場合は 1、最初の文字列が 2 番目の文字列より小さい場合は -1 を返します。
文字列の部分文字列を返します。文字列内の指定された UTF-8 バイト インデックス(ゼロ ベース)の文字から始まり、指定されたバイト数だけ継続します。
string の部分文字列を返します。 指定された UTF-8 コード ポイント(CP) の文字で始まる インデックス(ゼロベース)の string 内の を、指定されたコード ポイントの数だけ継続します。
文字列を小文字に変換します。単一の引数式を受け入れます。
値を文字列に変換します。
文字列の先頭と末尾から空白または指定された文字を削除します。
文字列を大文字に変換します。単一の引数式を受け入れます。
名前
説明
集計操作に関連するドキュメントごとの利用可能なメタデータにアクセスします。

三角関数の式は、数値に対して三角関数の操作を行います。角度を表す値は、常にラジアンで入力または出力されます。度とラジアンの測定値を変換するには、$degreesToRadians$radiansToDegrees を使用します。

名前
説明
ラジアンで測定された値のサインを返します。
ラジアンで測定された値のコサインを返します。
ラジアンで測定された値のタンジェントを返します。
値の逆サイン(アーク サイン)をラジアンで返します。
値の逆コサイン(アーク コサイン)をラジアンで返します。
値の逆タンジェント(アーク タンジェント)をラジアンで返します。
y / x の逆タンジェント (アーク タンジェント) をラジアンで返します。ここでは、yx はそれぞれ式に渡される最初の値と 2 番目の値です。
値の逆双曲線サイン(双曲線アーク サイン)をラジアンで返します。
値の逆双曲線コサイン(双曲線アーク コサイン)をラジアンで返します。
値の逆双曲線タンジェント(双曲線アーク タンジェント)をラジアンで返します。
ラジアンで測定された値の双曲線サインを返します。
ラジアンで測定された値の双曲線コサインを返します。
ラジアンで測定された値の双曲線タンジェントを返します。
値を度からラジアンに変換します。
値をラジアンから度に変換します。
名前
説明
値を指定した型に変換します。

指定された式がintegerdecimaldouble 、またはlongに解決される場合はブール値trueを返します。

式が他のBSON 型null 、または欠落したフィールドに解決される場合はブール値falseを返します。

値をブール値に変換します。
値を日付に変換します。
値を Decimal128 に変換します。
値を double に変換します。
値を整数に変換します。
値を long に変換します。
値を ObjectId に変換します。
値を文字列に変換します。
フィールドの BSON データ型を返します。

集計アキュムレータ演算子:

バージョン 5.0 での変更

名前
説明
ユーザー定義のアキュムレータ関数の結果を返します。

グループごとのユニークな式値の配列を返します。配列要素の順序は未定義です。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

数値の平均を返します。数値以外の値は無視されます。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

グループにあるドキュメントの数を返します。

$count パイプライン ステージとは異なります。

バージョン 5.0 で追加され、$groupおよび$setWindowFieldsステージで利用できます。

グループ内の最初のドキュメントのの結果を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

グループ内の最後のドキュメントのの結果を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

グループごとの最大の式の値を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

各グループの入力ドキュメントを組み合わせて作成したドキュメントを返します。

グループごとの最小の式値を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

グループごとのドキュメントの式値の配列を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

入力値の母集団標準偏差を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

入力値のサンプル標準偏差を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

数値の合計を返します。数値以外の値は無視されます。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

$group ステージのアキュムレータとして使用できる演算子の中には、他のステージでは使用できてもアキュムレータとしては使用できないものもあります。これらの他の段階で使用した場合、これらの演算子は状態を維持せず、単一の引数または複数の引数のいずれかを入力として取ることができます。詳細については、各演算子のページを参照してください。

バージョン 5.0 での変更

次のアキュムレータ演算子は、 $project$addFields$set 、および MongoDB 5.0 以降の$setWindowFieldsステージでも使用できます。

名前
説明
各ドキュメントの指定された式または式のリストの平均を返します。数値以外の値は無視されます。
グループ内の最初のドキュメントのの結果を返します。
グループ内の最後のドキュメントのの結果を返します。
各ドキュメントの指定された式または式のリストの最大値を返します。
各ドキュメントの指定された式または式のリストの最小値を返します。
入力値の母集団標準偏差を返します。
入力値のサンプル標準偏差を返します。
数値の合計を返します。数値以外の値は無視されます。
名前
説明

サブエクスプレッションのスコープ内で使用する変数を定義し、サブエクスプレッションの結果を返します。名前付きパラメータを受け入れます。

任意の数の引数式を受け入れます。

バージョン 5.0 で追加

ウィンドウ演算子は、ウィンドウと呼ばれるコレクション内の定義済みのドキュメント範囲から値を返します。ウィンドウ$setWindowFieldsステージで定義され、MongoDB 5.0 以降で使用可能です。

$setWindowFieldsステージでは次のウィンドウ演算子を使用できます。

名前
説明

各ドキュメントにを適用した結果取得されるすべての一意の値の配列を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

指定されたの平均を返します。数値以外の値は無視します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

グループまたはウィンドウ内のドキュメントの数を返します。

$count パイプライン ステージとは異なります。

バージョン 5.0 で追加

2 つの数値の母共分散を返します。

バージョン 5.0 で追加

2 つの数値のサンプル共分散を返します。

バージョン 5.0 で追加

$setWindowFields ステージ パーティション内の他のドキュメントに対するドキュメントの位置(ランクと呼ばれる)を返します。ランクに差はありません。同順位の場合は同じランクになります。

バージョン 5.0 で追加

指定されたウィンドウ内の平均変化率を返します。

バージョン 5.0 で追加

$setWindowFields ステージ パーティション内のドキュメントの位置(ドキュメント番号と呼ばれる)を返します。同順位の場合は、連番で異なるドキュメント番号になります。

バージョン 5.0 で追加

数値の指数移動平均を返します。

バージョン 5.0 で追加

グループまたは ウィンドウ 内の最初のドキュメントの の結果を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

曲線下面積の近似値を返します。

バージョン 5.0 で追加

グループまたは ウィンドウ 内の最後のドキュメントの の結果を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

各ドキュメントにを適用した結果取得される最大値を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

各ドキュメントにを適用した結果取得される最小値を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

各ドキュメントにを適用した結果取得される値の配列を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

$setWindowFieldsステージパーティション内の他のドキュメントに対するドキュメントの位置 (ランクと呼ばれる) を返します。

バージョン 5.0 で追加

$setWindowFields ステージのパーティション内の現在のドキュメントに関連して指定された位置にあるドキュメントに適用されたの値を返します。

バージョン 5.0 で追加

各ドキュメントに数値を適用した結果取得される母標準偏差を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

各ドキュメントに数値を適用した結果取得される標本標準偏差を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

各ドキュメントに数値を適用した結果取得される合計を返します。

バージョン 5.0 で変更$setWindowFieldsステージで使用可能です。

名前
説明
数値の絶対値を返します。
ユーザー定義のアキュムレータ関数の結果を返します。
値の逆コサイン(アーク コサイン)をラジアンで返します。
値の逆双曲線コサイン(双曲線アーク コサイン)をラジアンで返します。
数値を加算して合計を返すか、数値と日付を加算して新しい日付を返します。数値と日付を加算する場合は、数値をミリ秒として扱います。任意の数の引数式を受け入れますが、日付に解決できる式は最大で 1 つだけです。

グループごとのユニークな式値の配列を返します。配列要素の順序は未定義です。

バージョン 5.0 で変更 、 $setWindowFieldsステージで使用可能です。

セットのどの要素もfalseと評価されない場合はtrueを返し、そうでない場合はfalseを返します。単一の引数式を受け入れます。
すべての式が true と評価された場合にのみ true を返します。任意の数の引数式を受け入れます。
セットのいずれかの要素がtrueと評価された場合はtrueを返します。それ以外の場合はfalseを返します。単一の引数式を受け入れます。
指定された配列インデックスの要素を返します。
キーと値のペアの配列をドキュメントに変換します。
値の逆サイン(アーク サイン)をラジアンで返します。
値の逆双曲線サイン(双曲線アーク サイン)をラジアンで返します。
値の逆タンジェント(アーク タンジェント)をラジアンで返します。
y / x の逆タンジェント (アーク タンジェント) をラジアンで返します。ここでは、yx はそれぞれ式に渡される最初の値と 2 番目の値です。
値の逆双曲線タンジェント(双曲線アーク タンジェント)をラジアンで返します。

数値の平均を返します。数値以外の値は無視されます。

バージョン 5.0 で変更 、 $setWindowFieldsステージで使用可能です。

指定された文字列またはバイナリ データ値の内容のサイズをバイト単位で返します。

バージョン 4.4 で追加

指定されたドキュメントのサイズをバイト単位で返します(つまりbsontype Object )。(BSON としてエンコードされた場合)

バージョン 4.4 で追加

指定した数値以上の最小の整数を返します。
返します。2 つの値が等しい場合は0 、最初の値が 2 番目の値より大きい場合は1 、最初の値が 2 番目の値より小さい場合は-1を返します。
任意の数の文字列を連結します。
配列を連結して、連結された配列を返します。
1 つの式を評価し、その結果に応じて他の 2 つの式のいずれかの値を返す三項演算子。順序付けられたリスト内の 3 つの式または 3 つの名前付きパラメータのいずれかを受け入れます。
値を指定した型に変換します。
ラジアンで測定された値のコサインを返します。
ラジアンで測定された値の双曲線コサインを返します。

グループまたはウィンドウ内のドキュメントの数を返します。

バージョン 5.0 で追加 され、 $group } ステージと$setWindowFieldsステージで利用可能です。

$count パイプライン ステージとは異なります。

2 つの数値の母共分散を返します。

バージョン 5.0 で追加 され、 $setWindowFieldsステージで利用可能です。

2 つの数値のサンプル共分散を返します。

バージョン 5.0 で追加 され、 $setWindowFieldsステージで利用可能です。

日付オブジェクトにいくつかの時間単位を追加します。
2 つの日付の差を返します。
日付の構成要素を指定して BSON Date オブジェクトを構築します。
日付オブジェクトからいくつかの時間単位を減算します。
日付を切り捨てます。
日付の構成部分を含むドキュメントを返します。
日付や時刻を 日付オブジェクトとして返します。
日付を書式設定された文字列として返します。
日付の日付を 1 から 31 までの数値で返します。
日付の曜日を 1(日曜日)から7(土曜日)までの数値として返します。
日付の年間通算日を 1 ~ 366(閏年)の数値として返します。
値を度からラジアンに変換します。

ソートされたドキュメントの相対的な位置を返します。 位置に差はありません。

バージョン 5.0 で追加 され、 $setWindowFieldsステージで利用可能です。

指定されたウィンドウ内の平均変化率を返します。

バージョン 5.0 で追加 され、 $setWindowFieldsステージで利用可能です。

最初の数値を 2 番目の数値で除算した結果を返します。2 つの引数式を受け入れます。
値が等しい場合はtrueを返します。
e を指定された指数に上げます。

数値の指数移動平均を返します。

バージョン 5.0 で追加 され、 $setWindowFieldsステージで利用可能です。

配列のサブセットを選択して、フィルター条件に一致する要素のみを含む配列を返します。

グループごとの最初のドキュメントの値を返します。 順序は、ドキュメントがソートされた場合にのみ定義されます。

バージョン 5.0 で変更 、 $setWindowFieldsステージで使用可能です。

指定した数値以下の最大の整数を返します。

カスタム集計関数を定義します。

バージョン 4.4 で追加

ドキュメントから指定したフィールドの値を返します。$getFieldを使用すると、名前にピリオド( . )が含まれるフィールドやドル記号( $ )で始まるフィールドの値を取得できます。

最初の値が 2 番目の値より大きい場合はtrueを返します。
1 番目の値が 2 番目の値以上であれば true を返します。
日付の時間を 0 から 23 までの数値で返します。
最初の式の null 以外の結果を返すか、最初の式の結果が null の場合は 2 番目の式の結果を返します。null 結果には、未定義の値または欠落したフィールドのインスタンスが含まれます。引数として 2 つの式を受け入れます。2 番目の式の結果は null にすることができます。
指定した値が配列内にあるかどうかをブール値で返します。
配列内で指定された値の出現を検索し、最初に出現した位置の配列インデックスを返します。部分文字列が見つからない場合は、 -1を返します。
文字列から部分文字列を検索し、最初に出現した文字列の UTF-8 バイトインデックスを返します。部分文字列が見つからない場合は、 -1を返します。
文字列から部分文字列を検索し、最初に出現した文字列の UTF-8 コードポイントのインデックスを返します。部分文字列が見つからない場合は、 -1を返します。

曲線下面積の近似値を返します。

バージョン 5.0 で追加 され、 $setWindowFieldsステージで利用可能です。

オペランドが配列であるかどうかを判断します。ブール値を返します。
式が整数、double、decimal、long に変換されるかどうかを判断します。
曜日番号を ISO 8601 形式で返します。範囲は1(月曜日)から7(日曜日)までです。
1から53までの範囲の ISO 8601 形式の週番号を返します。週番号は、その年の最初の木曜日を含む週(月曜日から日曜日)の1から始まります。
ISO 8601 形式の年番号を返します。年は第 1 週の月曜日(ISO 8601)から始まり、最終週の日曜日(ISO 8601)に終わります。

グループごとの最後のドキュメントの値を返します。 順序は、ドキュメントがソートされた場合にのみ定義されます。

バージョン 5.0 で変更 、 $setWindowFieldsステージで使用可能です。

サブエクスプレッションのスコープ内で使用する変数を定義し、サブエクスプレッションの結果を返します。名前付きパラメータを受け入れます。

任意の数の引数式を受け入れます。

解析せずに値を返します。 集計パイプラインが式として解釈できる値には、 を使用します。 たとえば、フィールドパスとして解析されないようにするには、 $で始まる string に$literal式を使用します。
数値の自然対数を計算します。
指定した基数の数値のログを計算します。
数値の対数基数 10 を計算します。
最初の値が 2 番目の値より小さい場合はtrueを返します。
最初の値が 2 番目の値以下の場合に true を返します。
文字列の先頭から空白または指定した文字を削除します。
配列の各要素に部分式を適用し、結果の値の配列を順番に返します。名前付きパラメータを受け入れます。

グループごとの最大の式の値を返します。

バージョン 5.0 で変更 、 $setWindowFieldsステージで使用可能です。

複数のドキュメントを 1 つのドキュメントに結合します。
集計操作に関連するドキュメントごとの利用可能なメタデータにアクセスします。

グループごとの最小の式値を返します。

バージョン 5.0 で変更 、 $setWindowFieldsステージで使用可能です。

日付のミリ秒を 0 から 999 までの数値で返します。
日付の分を 0 から 59 までの数値で返します。
最初の数値の余りを 2 番目の数値で割った値を返します。2 つの引数式を受け入れます。
日付の月を 1(1 月)から 12(12 月)までの数値として返します。
数値を乗算して積を返します。任意の数の引数式を受け入れます。
値が等価でない場合は true を返します。
ブール値関数は、引数で指定した式と反対の真偽値を返します。単一の引数式を受け入れます。
ドキュメントを、キーと値のペアを表すドキュメントの配列に変換します。
いずれかの式がtrueと評価された場合はtrueを返します。任意の数の引数式を受け入れます。
指定した指数まで数値を上げます。

グループごとのドキュメントの式値の配列を返します。

バージョン 5.0 で変更 、 $setWindowFieldsステージで使用可能です。

値をラジアンから度に変換します。
0 から 1 の間のランダムな浮動小数点数を返します。
ユーザー定義の入力に従って、整数のシーケンスを含む配列を出力します。

ソートされた他のドキュメントに対するドキュメントの位置(ランクと呼ばれる)を返します。

バージョン 5.0 で追加 され、 $setWindowFieldsステージで利用可能です。

配列内の各要素に式を適用し、それらを 1 つの値に結合します。
正規表現(regex)を文字列に適用し、最初に一致したサブストリングに関する情報を返します。
正規表現(regex)を文字列に適用し、一致したすべての部分文字列に関する情報を返します。
正規表現(regex)を文字列に適用し、一致するものが見つかったかどうかを示すブール値を返します。

指定された入力内の一致した文字列の最初のインスタンスを置き換えます。

バージョン 4.4 で追加

指定された入力内の一致した文字列のすべてのインスタンスを置き換えます。

バージョン 4.4 で追加

要素を逆の順序の配列を返します。
数値を整数または指定された小数点以下の桁に丸めます。
文字列の末尾から空白または指定した文字を削除します。
指定されたレートでドキュメントをランダムに選択します。選択されるドキュメントの正確な数は実行ごとに異なりますが、選択される数量は、ドキュメントの総数に対するパーセンテージで表されるサンプルレートに近似します。
日付の秒数を 0 から 60(うるう秒)までの数値として返します。
最初のセットには表示されるが 2 番目のセットには表示されない要素を含むセットを返します。 相対的な補完 を実行します 最初のセットに対する 2 番目のセットの厳密に 2 つの引数式を受け入れます。
入力セットが同じ明確な要素を持つ場合は true を返します。2 つ以上の引数式を受け入れます。

ドキュメント内の指定したフィールドを追加、更新、または削除します。$setFieldを使用すると、名前にピリオド( . )が含まれるフィールドやドル記号( $ )で始まるフィールドを追加、更新、または削除できます。

バージョン 5.0 で追加

すべての入力セットに現れる要素を含むセットをします。任意の数の引数式を受け入れます。
Returns true if all elements of the first set appear in the second set, including when the first set equals the second set; i.e. not a strict subset. 厳密に 2 つの引数式を受け入れます。
入力セットのいずれかに現れる要素を含むセットを返します。

出力内の現在のドキュメントを基準とした指定された位置にあるドキュメントに適用されたの値を返します。

バージョン 5.0 で追加 され、 $setWindowFieldsステージで利用可能です。

配列内の要素の数を返します。引数として 1 つの式を受け入れます。
ラジアンで測定された値のサインを返します。
ラジアンで測定された値の双曲線サインを返します。
配列のサブセットを返します。
文字列を区切り文字に基づいて部分文字列に分割します。部分文字列の配列を返します。区切り文字が文字列内に見つからない場合は、元の文字列を含む配列を返します。
平方根を計算します。

入力値の母集団標準偏差を返します。

バージョン 5.0 で変更 、 $setWindowFieldsステージで使用可能です。

入力値のサンプル標準偏差を返します。

バージョン 5.0 で変更 、 $setWindowFieldsステージで使用可能です。

大文字と小文字を区別しない文字列比較を行い、2 つの文字列が等しい場合は 0、最初の文字列が 2 番目の文字列より大きい場合は 1、最初の文字列が 2 番目の文字列より小さい場合は -1 を返します。
文字列内の UTF-8 でエンコードされたバイト数を返します。
UTF-8コードポイントの数を文字列で返します。
文字列の部分文字列を返します。文字列内の指定された UTF-8 バイト インデックス(ゼロ ベース)の文字から始まり、指定されたバイト数だけ継続します。
string の部分文字列を返します。 指定された UTF-8 コード ポイント(CP) の文字で始まる インデックス(ゼロベース)の string 内の を、指定されたコード ポイントの数だけ継続します。
最初の値から 2 番目の値を減算した結果を返します。2 つの値が数値の場合は、差を返します。2 つの値が日付の場合は、ミリ秒単位で差を返します。2 つの値が日付とミリ秒単位の数値の場合、結果の日付を返します。2 つの引数式を受け入れます。2 つの値が日付と数値の場合、数値から日付を減算しても意味がないため、最初に日付引数を指定します。

数値の合計を返します。数値以外の値は無視されます。

バージョン 5.0 で変更 、 $setWindowFieldsステージで使用可能です。

一連のケース式を評価します。trueに評価される式が見つかると、 $switch指定された式を実行し、制御フローを抜け出します。
ラジアンで測定された値のタンジェントを返します。
ラジアンで測定された値の双曲線タンジェントを返します。
値をブール値に変換します。
値を日付に変換します。
値を Decimal128 に変換します。
値を double に変換します。
値を整数に変換します。
値を long に変換します。
値を ObjectId に変換します。
値を文字列に変換します。
文字列を小文字に変換します。単一の引数式を受け入れます。
文字列を大文字に変換します。単一の引数式を受け入れます。
文字列の先頭と末尾から空白または指定された文字を削除します。
数値を整数または指定された小数点以下の桁に切り捨てます。
フィールドの BSON データ型を返します。

ドキュメント内の指定したフィールドを削除します。 名前にピリオド( . )が含まれる名前付きフィールド、またはドル記号( $ )で始まる名前付きフィールドを削除するための$setFieldのエイリアス。

バージョン 5.0 で追加

日付の週番号を 0(年の最初の日曜日に先行する部分的な週)から 53(うるう年)までの数値で返します。
日付の年を数値で返します (例:2014)。
2 つの配列を結合します。

パイプライン ステージについては、「集計パイプライン ステージ 」を参照してください。

戻る

$unwind