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

集計パイプライン クイック リファレンス

項目一覧

  • ステージ
  • 演算子式
  • 式演算子のインデックス

注意

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

でホストされている配置向け に UI で集計パイプラインを ビルド MongoDB Atlasできます。

db.collection.aggregate()メソッドでは、 パイプライン ステージが配列に表示されます。 ドキュメントは、ステージを順番に通過します。 $out$merge$geoNearステージを除くすべてのステージは、パイプライン内で複数回使用できます。

db.collection.aggregate( [ { <stage> }, ... ] )
ステージ
説明

ドキュメントに新しいフィールドを追加します。$projectと同様に、 $addFieldsストリーム内の各ドキュメントを再形成します。具体的には、入力ドキュメントの既存のフィールドと新しく追加されたフィールドの両方を含む出力ドキュメントに新しいフィールドを追加します。

$set$addFieldsの別名です。

受信ドキュメントを、指定された式とバケット境界に基づいて、バケットと呼ばれるグループに分類します。
指定された式に基づいて、受信したドキュメントをバケットと呼ばれる特定の数のグループに分類します。指定された数のバケットにドキュメントを均等に分散するために、バケット境界が自動的に決定されます。
コレクションの変更ストリームカーソルを返します。このステージは集計パイプラインで 1 回のみ発生し、第 1 ステージとして実行する必要があります。
コレクションまたはビューに関する統計情報を返します。

集計パイプラインのこの段階でのドキュメントの数を返します。

$count 集計アキュムレータとは異なります。

同じ入力ドキュメントセット上の単一ステージ内の複数の集計パイプラインを処理します。複数のディメンションまたはファセットにわたるデータを1つの段階で特徴付けることができる多面的な集計を作成できます。

地理空間点への近接性に基づいて、順序が付けられたドキュメントのストリームを返します。地理空間データ用の $match$sort$limit 機能を組み込みます。出力ドキュメントには、追加の距離フィールドが含まれ、ロケーション識別子フィールドを含めることができます。

コレクションに対して再帰的な検索を実行します。各出力ドキュメントに、そのドキュメントの再帰検索のトラバーサル結果を含む新しい配列フィールドを追加します。
入力ドキュメントを指定された識別子式でグループ化し、アキュムレータ式(指定されている場合)を各グループに適用します。すべての入力ドキュメントを消費し、各グループごとに 1 つのドキュメントを出力します。出力ドキュメントには、ID フィールドと、指定されている場合は累積フィールドのみが含まれます。
コレクションの各インデックスの使用に関する統計を返します。
変更されていない最初の n 個のドキュメントをパイプラインに渡しますn は指定された制限です。入力ドキュメントごとに、1 件のドキュメント(最初の n 個のドキュメント)または 0 件のドキュメント(最初の n 個のドキュメントの後)を出力します。
system.sessionsコレクションに伝達されるまで十分な長さにわたってアクティブであったすべてのセッションを一覧表示します。
同じデータベース内の別のコレクションへの左外部結合を実行して、"join" コレクションのドキュメントをフィルタリングして処理します。
ドキュメントストリームをフィルタリングして、一致するドキュメントのみが変更されずに次のパイプラインステージに渡されるようにします。$match標準の MongoDB クエリを使用します。入力ドキュメントごとに、1 件のドキュメント(一致)または 0 件のドキュメント(一致なし)を出力します。
集約パイプラインの結果ドキュメントをコレクションに書き込みます。ステージは(新しいドキュメントの挿入、ドキュメントのマージ、ドキュメントの置換、既存のドキュメントの保持、操作の失敗、カスタムアップデートパイプラインによるドキュメントの処理)の結果を出力コレクションに組み込むことができます。$mergeステージを使用するには、パイプラインの最後のステージである必要があります。
集約パイプラインの結果ドキュメントをコレクションに書き込みます。$outステージを使用するには、パイプラインの最後のステージである必要があります。
コレクションのプラン キャッシュ情報を返します。

新しいフィールドを追加したり、既存のフィールドを削除したりして、ストリーム内の各ドキュメントを再構築します。入力ドキュメント 1 件ごとに、1つのドキュメントを出力します。

既存のフィールドを削除するには、 $unsetも参照してください。

ドキュメント自体に保存されている情報に基づいて各ドキュメントのコンテンツを制限することにより、ストリーム内の各ドキュメントを再構築します。$project$matchの機能を組み合わせます。フィールド レベルのリダクションを実装するために使用できます。入力ドキュメントごとに、1 件または 0 件のドキュメントを出力します。

指定された埋め込みドキュメントでドキュメントを置き換えます。この操作により、_id フィールドを含む入力ドキュメント内の既存のフィールドがすべて置き換えられます。入力ドキュメントに埋め込まれているドキュメントを指定して、埋め込まれたドキュメントをトップレベルにプロモートします。

$replaceWith$replaceRootステージの別名です。

指定された埋め込みドキュメントでドキュメントを置き換えます。この操作により、_id フィールドを含む入力ドキュメント内の既存のフィールドがすべて置き換えられます。入力ドキュメントに埋め込まれているドキュメントを指定して、埋め込まれたドキュメントをトップレベルにプロモートします。

$replaceWith$replaceRootステージの別名です。

入力から指定した数のドキュメントをランダムに選択します。

Atlasコレクション内のフィールドの全文検索を実行します。

$search MongoDB Atlas クラスターでのみ使用可能であり、自己管理型配置では使用できません。

ドキュメントに新しいフィールドを追加します。$projectと同様に、 $setストリーム内の各ドキュメントを再形成します。具体的には、入力ドキュメントの既存のフィールドと新しく追加されたフィールドの両方を含む出力ドキュメントに新しいフィールドを追加します。

$set$addFieldsステージの別名です。

ドキュメントをウィンドウにグループ化し、各ウィンドウのドキュメントに 1 つまたは複数のオペレーターを適用します。

バージョン 5.0 で追加

最初の n 個のドキュメント( n は指定されたスキップ番号)をスキップし、残りのドキュメントは変更されずにパイプラインに渡されます。入力ドキュメントごとに、1 件のドキュメント(最初の n 個のドキュメント)または 0 件のドキュメント(最初の n 個のドキュメントの後)を出力します。
指定されたソートキーでドキュメント ストリームを並べ替えます。順序のみが変更されます。ドキュメントは変更されません。入力ドキュメント 1 件ごとに、1つのドキュメントを出力します。
指定された式の値に基づいて受信ドキュメントをグループ化し、個別のグループごとにドキュメントの数を計算します。
2 つのコレクションの和集合を実行します。つまり、2つのコレクションのパイプライン結果を1つの結果セットに結合します。

ドキュメントからフィールドを削除または除外します。

$unsetは、フィールドを削除する$projectステージの別名です。

入力ドキュメントから配列フィールドを分解して、要素のドキュメントを出力します。各出力ドキュメントは、配列を要素の値で置き換えます。入力ドキュメントごとに n 個のドキュメントを出力します。n は配列要素の数で、空の配列の場合は 0 になる場合もあります。

MongoDB バージョン 3.6 以降では、 db.aggregate()メソッドも提供されています。

db.aggregate( [ { <stage> }, ... ] )

次のステージでは、db.aggregate() メソッドではなくdb.collection.aggregate() メソッドを使用します。

ステージ
説明
コレクションの変更ストリームカーソルを返します。このステージは集計パイプラインで 1 回のみ発生し、第 1 ステージとして実行する必要があります。
MongoDB 配置のアクティブな操作および休止中の操作に関する情報を返します。
現在接続されているmongosまたはmongodインスタンスで最近使用されたすべてのアクティブ セッションを一覧表示します。これらのセッションはまだsystem.sessionsコレクションに伝播されていない可能性があります。

MongoDB 4.2 以降では、次の更新に集計パイプラインを使用できます。

更新の場合、パイプラインは以下のステージで構成されます。

Tip

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

式には、フィールド パスリテラルシステム変数式オブジェクト式演算子を含めることができます。 式はネストできます。

集計式はフィールドパスを使用して、入力ドキュメント内のフィールドにアクセスします。フィールドパスを指定するには、フィールド名またはドット表記のフィールド名(埋め込みドキュメント内のフィールドの場合)の前にドル記号 $ を付けます。たとえば、user フィールドのフィールドパスは "$user" と指定し、"user.name" フィールドへのフィールドパスは "$user.name" と指定します。

"$<field>""$$CURRENT.<field>" と同等であり、CURRENT は、特定のステージで別途明示される場合を除き、現在のオブジェクトのルートにデフォルト設定されるシステム変数です。

MongoDB は、 式で使用するためのさまざまな 集計システム変数を提供します。 変数にアクセスするには、変数名の前に$$を付けます。 例:

変数
経由でアクセス $$
簡単な説明
$$NOW
配置のすべてのノードで同じであり、集計パイプライン全体で一定である現在の日時値を返します。 (4.2 以降で利用可能)
$$CLUSTER_TIME
配置のすべてのノードで同じであり、集計パイプライン全体で一定である現在のタイムスタンプ値を返します。 レプリカセットとシャーディングされたクラスターのみ。 (4.2 以降で利用可能)
$$ROOT
ルート ドキュメント、つまり最上位ドキュメントを参照します。
$$CURRENT
フィールドパスの先頭を参照します。デフォルトではROOT変更できます。
$$REMOVE
フィールドを条件付きで除外できます。 (3.6 以上で利用可能)
$$DESCEND
$redact 式の許可された結果の 1 つ。
$$PRUNE
$redact 式の許可された結果の 1 つ。
$$KEEP
$redact 式の許可された結果の 1 つ。

これらの変数の詳細については、「システム変数 」を参照してください。

リテラルは任意のタイプにすることができます。 ただし、MongoDB は、ドル記号$で始まる string リテラルを、プロジェクション フラグとして式オブジェクト内のフィールドと数値またはブール値のリテラルへのパスとして解析します。 リテラルの解析を回避するには、 $literal式を使用します。

式オブジェクトの形式は次のとおりです。

{ <field1>: <expression1>, ... }

式が数値またはブール値のリテラルの場合、MongoDB はリテラルをプロジェクション フラグとして扱い(例: 1またはtrueを使用して フィールドを含める)は、 $projectステージでのみ有効です。 数値またはブール値のリテラルをプロジェクション フラグとして扱わないようにするには、 $literal式を使用して数値またはブール値のリテラルをラップします。

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

{ <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ステージで使用可能です。

戻る

参照