AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

式

式は、入力を変更せずに値に変換されるMQLコンポーネントです。たとえば、次のコンテキストで使用できます。

MongoDB クエリ言語では、次のコンポーネントから式を構築できます。

コンポーネント
例

定数

3

演算子

フィールドパス式

"$<path.to.field>"

例、{ $add: [ 3, "$inventory.total" ] } は、$add 演算子と 2 つのオペランドで構成される式です。

式は、入力ドキュメントのパスinventory.totalの値に3を追加した結果を返します。

式演算子は引数の配列を取り、次の形式を持ちます。

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

演算子が単一の引数を受け入れる場合は、外側の配列を省略できます。

{ <operator>: <argument> }

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

名前
説明

数値の絶対値を返します。

数値を加算して合計を返すか、数値と日付を加算して新しい日付を返します。数値と日付を加算する場合は、数値をミリ秒として扱います。任意の数の引数式を受け入れますが、日付に解決できる式は最大で 1 つだけです。

指定した数値以上の最小の整数を返します。

最初の数値を 2 番目の数値で除算した結果を返します。2 つの引数式を受け入れます。

e を指定された指数に上げます。

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

数値の自然対数を計算します。

指定した基数の数値のログを計算します。

数値の対数基数 10 を計算します。

最初の数値の余りを 2 番目の数値で割った値を返します。2 つの引数式を受け入れます。

数値を乗算して積を返します。任意の数の引数式を受け入れます。

指定した指数まで数値を上げます。

数値を整数または指定された小数点以下の桁に丸めます。

平方根を計算します。

最初の値から 2 番目の値を減算した結果を返します。2 つの値が数値の場合は、差を返します。2 つの値が日付の場合は、ミリ秒単位で差を返します。2 つの値が日付とミリ秒単位の数値の場合、結果の日付を返します。2 つの引数式を受け入れます。2 つの値が日付と数値の場合、数値から日付を減算しても意味がないため、最初に日付引数を指定します。

数値を整数または指定された小数点以下の桁に切り捨てます。

名前
説明

指定された配列インデックスの要素を返します。

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

配列を連結して、連結された配列を返します。

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

配列の先頭から指定した数の要素を返します。$firstN アキュムレータとは異なります。

指定した値が配列内にあるかどうかをブール値で返します。

配列内で指定された値の出現を検索し、最初に出現した位置の配列インデックスを返します。配列インデックスは 0 から始まります。

オペランドが配列であるかどうかを判断します。ブール値を返します。

配列の末尾から指定した数の要素を返します。$lastN アキュムレータとは異なります。

配列の各要素に部分式を適用し、結果の値の配列を順番に返します。名前付きパラメータを受け入れます。

配列内の n 個の最大値を返します。$maxN アキュムレータとは異なります。

配列内の n 個の最小値を返します。$minN アキュムレータとは異なります。

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

ユーザー定義の入力に従って、整数のシーケンスを含む配列を出力します。

配列内の各要素に式を適用し、それらを 1 つの値に結合します。

要素を逆の順序の配列を返します。

配列内の要素の数を返します。引数として 1 つの式を受け入れます。

配列のサブセットを返します。

配列の要素をソートします。

2 つの配列を結合します。

名前
説明

intまたはlong値の配列に対するビット単位のand演算の結果を返します。

バージョン6.3の新機能。

単一の引数または単一の int または long 値を含む配列に対するビット単位の not 演算の結果を返します。

バージョン6.3の新機能。

intまたはlong値の配列に対するビット単位のor演算の結果を返します。

バージョン6.3の新機能。

int と long の値の配列に対するビット単位の xor (排他的論理和) 演算の結果を返します。

バージョン6.3の新機能。

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

ブール式は、 falseブール値に加えて、次のnull 、 0 、および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 つの値が日付と数値の場合、数値から日付を減算しても意味がないため、最初に日付引数を指定します。

一部の $group アキュムレータは、入力引数または入力配列の値を計算する式としても使用できます。

次の演算子はアキュムレータですが、値の配列を入力として受け入れる式として使用することもできます。

名前
説明

各ドキュメントの指定された式または式のリストの平均を返します。数値以外の値は無視されます。

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

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

各ドキュメントの指定された式または 式のリストの最大値を返します。

中央値、つまり 50 パーセンタイルの近似値がスカラー値として返されます。

バージョン7.0の新機能。

各ドキュメントの指定された式または式のリストの最小値を返します。

指定パーセンタイル値に対応するスカラー値の配列を返します。

バージョン7.0の新機能。

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

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

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

名前
説明

解析せずに値を返します。集計パイプラインが式として解釈できる値に使用します。例えば、フィールドパスとして解析されないようにするには、ドル記号 ( $ ) で始まる文字列に$literal式を使用します。

名前
説明

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

0 から 1 の間のランダムな浮動小数点数を返します。

指定されたレートでドキュメントをランダムに選択します。選択されるドキュメントの正確な数は実行ごとに異なりますが、選択される数量は、ドキュメントの総数に対するパーセンテージで表されるサンプルレートに近似します。

MongoDB がハッシュインデックスを作成するのと同じハッシュ関数を使用して、入力式のハッシュを計算して返します。

名前
説明

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

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

ドキュメント内の指定したフィールドを追加、更新、または削除します。$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 の部分文字列を返します。string 内の指定された UTF-8 コード点(CP)インデックス(ゼロ ベース)の文字から始まり、指定されたコード ポイントの数だけ継続します。

文字列を小文字に変換します。単一の引数式を受け入れます。

値を文字列に変換します。

文字列の先頭と末尾から空白または指定された文字を削除します。

文字列を大文字に変換します。単一の引数式を受け入れます。

名前
説明

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

タイムスタンプ式演算子は、タイムスタンプから値を返します。

名前
説明

タイムスタンプからの増分序数を long 型で返します。

バージョン5.1の新機能。

タイムスタンプからの秒数を long として返します。

バージョン5.1の新機能。

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

名前
説明

ラジアンで測定された値のサインを返します。

ラジアンで測定された値のコサインを返します。

ラジアンで測定された値のタンジェントを返します。

値の逆サイン(アーク サイン)をラジアンで返します。

値の逆コサイン(アーク コサイン)をラジアンで返します。

値の逆タンジェント(アーク タンジェント)をラジアンで返します。

y / x の逆タンジェント (アーク タンジェント) をラジアンで返します。ここでは、y と x はそれぞれ式に渡される最初の値と 2 番目の値です。

値の逆双曲線サイン(双曲線アーク サイン)をラジアンで返します。

値の逆双曲線コサイン(双曲線アーク コサイン)をラジアンで返します。

値の逆双曲線タンジェント(双曲線アーク タンジェント)をラジアンで返します。

ラジアンで測定された値の双曲線サインを返します。

ラジアンで測定された値の双曲線コサインを返します。

ラジアンで測定された値の双曲線タンジェントを返します。

値を度からラジアンに変換します。

値をラジアンから度に変換します。

名前
説明

値を指定した型に変換します。

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

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

値をブール値に変換します。

値を日付に変換します。

値を Decimal128 に変換します。

値を double に変換します。

値を整数に変換します。

値を long に変換します。

値を ObjectId に変換します。

値を文字列に変換します。

フィールドの BSON データ型を返します。

名前
説明

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

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

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

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

名前
説明

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

バージョン5.0での変更:

$setWindowFieldsステージで利用可能です。

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

バージョン5.0での変更:

$setWindowFieldsステージで利用可能です。

指定ソート順に従って、グループ内の最下位の要素を返します。

バージョン5.2の新機能。

$groupおよび$setWindowFieldsステージで利用可能です。

グループ内の下位 n フィールドの集計を、指定のソート順序に従って返します。

バージョン5.2の新機能。

$groupおよび$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ステージで利用可能です。

線形補間 nullを使用して、周囲のフィールド値に基づき、 ウィンドウ 内の と欠落フィールドを埋めます。

$setWindowFieldsステージで利用可能です。

バージョン5.3の新機能。

Last observation carried forward(LOCF)法。ウィンドウ内の null および欠落しているフィールドの値として、フィールドの最後の null 以外の値を設定します。

$setWindowFieldsステージで利用可能です。

バージョン5.2の新機能。

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

バージョン5.0での変更:

$setWindowFieldsステージで利用可能です。

各ドキュメントに式を適用した結果の最小値を返します。

バージョン5.0での変更:

$setWindowFieldsステージで利用可能です。

グループ内の n 個の最小値要素の集合を返します。$minN配列演算子とは異なります。

バージョン5.2の新機能。

$group 、 $setWindowFields 、および式として使用できます。

各ドキュメントに式を適用した結果の値の配列を返します。

バージョン5.0での変更:

$setWindowFieldsステージで利用可能です。

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

バージョン 5.0 の新機能。

各ドキュメントに数値式を適用した結果の母集団標準偏差を返します。

バージョン5.0での変更:

$setWindowFieldsステージで利用可能です。

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

バージョン5.0での変更:

$setWindowFieldsステージで利用可能です。

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

バージョン5.0での変更:

$setWindowFieldsステージで利用可能です。

指定ソート順に従って、グループ内の最上位の要素を返します。

バージョン5.2の新機能。

$groupおよび$setWindowFieldsステージで利用可能です。

グループ内の上位 n フィールドの集計を、指定のソート順序に従って返します。

バージョン5.2の新機能。

$groupおよび$setWindowFieldsステージで利用可能です。