オペレーター

MongoDB クエリ言語 (MQL) 演算子を使用すると、クエリ内で強力なフィルター処理、比較、およびデータ操作が可能になります。 これらの演算子をマスターすると、コレクション内のドキュメントを効率的に取得および更新するための表現型クエリを記述できます。

Accumulators

アキュムレータ演算子は、グループ化されたデータに対して計算を実行するために集計パイプラインで使用されます。

Description
$avg $avg演算子は、グループ、バケット、またはウィンドウ内のドキュメントの数値の平均を計算します。
$bottom $bottom演算子は、1 つ以上のフィールドで並べ替えられたクエリの結果セットから最後のドキュメントを返します。
$bottomN $bottomN演算子は、1 つ以上のフィールドで並べ替えられた結果から最後の N 個のドキュメントを返します
$count $count演算子は、クエリフィルター条件に一致するドキュメントの数をカウントするために使用されます。
$first $first 演算子は、グループの並べ替え順序に従って、グループ内の最初の値を返します。
$firstN $firstN演算子は、クエリで指定された 1 つ以上のフィールドでドキュメントを並べ替え、フィルター条件に一致する最初の N 個のドキュメントを返します。
$last $last演算子は、1 つ以上のフィールドで並べ替えられた結果から最後のドキュメントを返します
$lastN $lastN アキュムレータ演算子は、ドキュメントのグループ内の最後の N 個の値を返します。
$max $max演算子は、入力値のセットから最大値を返します。
$maxN $maxN操作子は、指定されたフィルター条件に基づいて上位 N 個の値を取得します。
$median $median演算子は、ドキュメントのグループ内の数値フィールドの中央値を計算します。
$min $min演算子は、指定したフィールドの最小値を取得します。
$minN $minN演算子は、指定されたフィルター条件に基づいて、下位 N の値を取得します。
$percentile $percentile演算子は、フィルター条件に一致する数値のパーセンタイルを計算します。
$stddevpop $stddevpop演算子は、指定された値の標準偏差を計算します。
$stddevsamp $stddevsamp演算子は、母集団全体ではなく、指定した値の標本の標準偏差を計算します。
$sum $sum演算子は、フィルター条件に基づいてフィールドの値の合計を計算します。
$top $top演算子は、1 つ以上のフィールドで並べ替えられた結果セットから最初のドキュメントを返します。
$topN $topN演算子は、1 つ以上のフィールドで並べ替えられた結果から最初の N 個のドキュメントを返します。

集約

集計演算子は、集計パイプライン内のグループ化されたデータに対する操作を実行するために使用されます。

Description
$addFields 集計パイプラインの $addFields ステージは、ドキュメントに新しいフィールドを追加するために使用されます。
$bucket $bucketオペレーターは、指定された境界に基づいて入力ドキュメントをバケットにグループ化します。
$changeStream $changeStream ステージでは、変更ストリーム カーソルが開き、データの変更をリアルタイムで追跡できます。
$collStats 集計パイプラインの $collStats ステージは、コレクションに関する統計情報を返すために使用されます。
$convert $convert演算子は、式を指定した型に変換します。
$densify $densify演算子は、配列またはコレクション内の値のシーケンスに不足しているデータ ポイントを追加します。
$documents $documents ステージでは、指定された一連のドキュメントからパイプラインが作成されます。
$facet $facetを使用すると、1 つのパイプライン ステージ内で複数の並列集計を実行できます。
$fill $fill ステージでは、指定した方法と条件に基づいてドキュメント内の欠損値を埋めることができます。
$geoNear $geoNear演算子は、地理空間ポイントへの近接性によってドキュメントを検索して並べ替え、各ドキュメントの距離情報を返します。
$group $groupステージは、指定された識別子式によってドキュメントをグループ化し、アキュムレータ式を適用します。
$indexStats $indexStats ステージは、コレクション内の各インデックスの使用状況統計を返します。
$isNumber $isNumber演算子は、指定した式が数値型であるかどうかを確認します
$lookup Aggregation Framework の $lookup ステージは、他のコレクションとの左外部結合を実行するために使用されます。
$match 集計パイプラインの$match ステージは、指定した条件に一致するドキュメントをフィルター処理するために使用されます。
$merge 集計パイプラインの $merge ステージは、集計の結果を指定したコレクションに書き込みます。
$out 集計パイプラインの $out ステージは、結果のドキュメントを指定したコレクションに書き込みます。
$redact $redactオペレーターは、アクセス権に基づいてドキュメントの内容をフィルター処理します。
$replaceWith DocumentDB の $replaceWith 演算子は、ドキュメントを指定したドキュメントに置き換えた後にドキュメントを返します。
$sample DocumentDB の $sample 演算子は、ランダムに選択された数のドキュメントを返します。
$set DocumentDB の $set 演算子は、指定した値を持つ新しいフィールドを更新または作成します。
$skip 集計パイプラインの $skip ステージは、指定した数のドキュメントを入力からスキップし、残りのドキュメントをパイプラインの次のステージに渡すために使用されます。
$sort 集計パイプラインの$sort ステージは、指定したフィールドでパイプライン内のドキュメントを並べ替えるために使用されます。
$sortByCount 集計パイプラインの $sortByCount ステージは、指定した式でドキュメントをグループ化し、各グループ内のドキュメント数を降順で並べ替えるために使用されます。
$toBool $toBool演算子は、式をブール型に変換します。
$toDate $toDate演算子は、サポートされている型を適切な Date オブジェクトに変換します。
$toDecimal $toDecimal演算子は、式を Decimal 型に変換します。
$toDouble $toDouble演算子は、式を Double 値に変換します。
$toInt $toInt演算子は、式を整数に変換します。
$toLong $toLong演算子は、式を Long 値に変換します。
$toObjectId $toObjectId演算子は、式を ObjectId に変換します。
$toString $toString演算子は、式を文字列に変換します。
$unset 集計パイプラインの $unset ステージは、指定したフィールドをドキュメントから削除するために使用されます。
$unwind 集計フレームワークの $unwind ステージは、入力ドキュメントから配列フィールドを分解し、各要素に対応するドキュメントを出力するために使用されます。

算術式

算術式演算子は、数値に対して算術演算を実行します。

Description
$abs $abs 演算子は、数値の絶対値を返します。
$add $add演算子は、2 つの数値の合計または日付と数値の合計を返します。
$ceil $ceil 演算子は、指定された値以上の数のうち、最小の整数を返します。
$divide $divide 演算子は、2 つの数値を除算し、商を返します。
$exp $exp演算子は、指定した指数に e を発生させ、結果を返します。
$floor $floor演算子は、指定した数値以下の最大整数を返します。
$ln $ln演算子は、入力の自然対数を計算します。
$log $log演算子は、指定した底の数値の対数を計算します。
$log10 $log 10 演算子は、底 10 の指定された数値のログを計算します。
$multiply $multiply演算子は、入力された数値を乗算します。
$pow $pow演算子は、指定した指数の累乗に引き上げられた数値の値を計算します。
$round $round 演算子は、指定された小数位で数値を四捨五入します。
$sqrt $sqrt演算子は、入力数値の平方根を計算して返します。
$subtract $subtract演算子は、2 つの数値を減算し、結果を返します。
$trunc $trunc 演算子は、指定された小数位まで数値を切り捨てます。
Index

配列式

配列式演算子は、配列と配列要素に対して操作を実行します。

Description
$arrayElemAt $arrayElemAtは、指定した配列インデックス位置にある要素を返します。
$arrayToObject $arrayToObjectでは、配列を 1 つのドキュメントに変換できます。
$concatArrays $concatArraysは、複数の配列を 1 つの配列に結合するために使用されます。
$filter $filter演算子は、指定された条件に基づいて配列の要素をフィルター処理します。
$indexOfArray $indexOfArray演算子は、配列内の要素を検索し、最初に出現した要素のインデックスを返すために使用されます。
$isArray $isArray演算子は、指定した値が配列であるかどうかを判断するために使用されます。
$map $map演算子を使用すると、配列内の各要素に式を適用できます。
$range $range演算子を使用すると、順次整数の配列を生成できます。
$reduce $reduce演算子は、配列内の各要素に式を適用し、結果を 1 つの値として累積します。
$reverseArray $reverseArray演算子は、配列内の要素の順序を逆にするために使用されます。
$slice $slice演算子は、配列内の任意の要素から配列のサブセットを返します。
$sortArray $sortArray演算子は、配列内の要素の並べ替えに役立ちます。
$zip $zip演算子を使用すると、2 つ以上の配列を要素単位で 1 つの配列または配列にマージできます。

配列クエリ

配列クエリ演算子は、配列要素のクエリとフィルター処理に使用されます。

Description
$all $all 演算子は、すべての要素と一致する配列ドキュメントを検索するのに役立ちます。
$elemMatch $elemMatch演算子は完全な配列を返し、少なくとも 1 つの一致する配列要素で条件を修飾します。
$size $size 演算子を使用すると、指定された数の要素が配列フィールドに含まれるドキュメントのクエリを実行できます。

配列の更新

配列の更新演算子は、配列要素と構造体を変更するために使用されます。

Description
$ $ 位置指定演算子は、配列内の要素の位置を明示的に指定せずに、更新する配列内の要素を識別します。
$addToSet addToSet 演算子は、要素がまだ存在しない場合は配列に追加し、セット内の要素の一意性を確保します。
$each $each演算子は、1 つの更新操作で配列フィールドに複数の要素を追加するために、 $addToSet または $push 操作内で使用されます。
$pop $pop演算子は、配列の最初または最後の要素を削除します。
$position $positionは、新しい要素を挿入する配列内の位置を指定するために使用されます。
$[] $[] 演算子は、クエリ条件に一致する配列内のすべての要素を更新するために使用されます。
$[identifier] $[identifier] 演算子は、クエリ条件に一致する配列内の特定の識別子を使用してすべての要素を更新するために使用されます。
$pull 配列から値のすべてのインスタンスを削除します。
$pullAll $pullAll演算子は、指定した値のすべてのインスタンスを配列から削除するために使用されます。
$push $push演算子は、指定した値を文書内の配列に追加します。

Bitwise

ビット演算子は、数値のバイナリ表現に対して演算を実行します。

Description
$bitAnd $bitAnd演算子は、整数値に対してビットごとの AND 演算を実行し、結果を整数として返します。
$bitNot $bitNot演算子は、整数値に対してビットごとの NOT 演算を実行し、結果を整数として返します。
$bitOr $bitOr演算子は、整数値に対してビットごとの OR 演算を実行し、結果を整数として返します。
$bitXor $bitXor演算子は、整数値に対してビットごとの XOR 演算を実行します。

ビットごとのクエリ

ビットごとのクエリ演算子は、ビットごとの操作に基づいてクエリとフィルター処理を行うために使用されます。

Description
$bitsAllClear $bitsAllClear演算子は、ビットマスクで指定されたすべてのビット位置がクリアなドキュメントを照合するために使用されます。
$bitsAllSet bitsAllSet コマンドは、指定されたすべてのビット位置が設定されているドキュメントを照合するために使用されます。
$bitsAnyClear $bitsAnyClear演算子は、ビットマスク内の指定されたビット位置のいずれかがクリアされているドキュメントと一致します。
$bitsAnySet $bitsAnySet演算子は、指定されたビット位置のいずれかが 1 に設定されているドキュメントを返します。

ビットごとの更新

ビットごとの更新演算子は、ビットごとの演算を使用して値を変更するために使用されます。

Description
$bit この $bit 演算子は、整数値に対してビットごとの演算を実行するために使用されます。

比較クエリ

比較クエリ演算子は、値を比較し、ブール式を作成するために使用されます。

Description
$cmp $cmp演算子は、2 つの値を比較します
$eq $eq クエリ演算子は、フィールドの値を指定した値と比較します。
$gt $gt クエリ演算子は、フィールドの値が指定された値より大きいドキュメントを取得します。
$gte $gte演算子は、フィールドの値が指定した値以上のドキュメントを取得します。
$in $in演算子は、指定した値の配列に対してフィールドの値を照合します。
$lt $lt演算子は、フィールドの値が指定された値より小さいドキュメントを取得します。
$lte $lte演算子は、フィールドの値が指定した値以下のドキュメントを取得します。
$ne $ne演算子は、フィールドの値が指定した値と等しくないドキュメントを取得します。
$nin $nin演算子は、フィールドの値が値のリストと一致しないドキュメントを取得します。

条件式

条件式演算子は、式の制御フローと条件付きロジックを提供します。

Description
$cond $cond演算子は、条件を評価し、結果に基づいて 2 つの式のいずれかを返すために使用されます。
$ifNull $ifNull演算子は、式を評価し、式が null に解決された場合に指定された値を返すために使用されます。
$switch $switch演算子は、一連の条件を評価し、true に評価される最初の条件に基づいて値を返すために使用されます。

データ サイズ

データ サイズ演算子は、データ構造と値のサイズを決定するために使用されます。

Description
$binarySize $binarySize演算子は、バイナリ データ フィールドのサイズを返すために使用されます。
$bsonSize $bsonSize演算子は、BSON としてエンコードされた場合に、ドキュメントのサイズをバイト単位で返します。

日付式

日付式演算子は、日付と時刻の値に対して操作を実行します。

Description
$dateAdd $dateAdd演算子は、指定した数の時間単位 (日、時間、月など) を日付に追加します。
$dateDiff $dateDiff演算子は、年、月、日などのさまざまな単位で 2 つの日付の差を計算します。
$dateFromParts $dateFromParts演算子は、個々のコンポーネントから日付を作成します。
$dateFromString $dateDiff演算子は、日付/時刻文字列を日付オブジェクトに変換します。
$dateSubtract $dateSubtract演算子は、日付から指定した時間を減算します。
$dateToParts $dateToParts演算子は、日付を年、月、日などの個々の部分に分解します。
$dateToString $dateToString演算子は、日付オブジェクトを書式設定された文字列に変換します。
$dateTrunc $dateTrunc演算子は、指定した単位に日付を切り捨てます。
$dayOfMonth $dayOfMonth演算子は、日付から月の日を抽出します。
$dayOfWeek $dayOfWeek演算子は、日付から曜日を抽出します。
$dayOfYear $dayOfYear演算子は、日付から年の日を抽出します。
$hour $hour演算子は、日付の時間部分を 0 ~ 23 の数値として返します。
$isoDayOfWeek $isoDayOfWeek演算子は、ISO 8601 形式の曜日番号を 1 (月曜日) から 7 (日曜日) までの範囲で返します。
$isoWeek $isoWeek演算子は、ISO 8601 形式の年の週番号を 1 から 53 までの範囲で返します。
$isoWeekYear $isoWeekYear演算子は ISO 8601 形式で年番号を返します。これは、年の先頭または末尾の日付の暦年とは異なる場合があります。
$millisecond $millisecond演算子は、日付値からミリ秒部分を抽出します。
$minute $minute演算子は、日付値から分部分を抽出します。
$month $month演算子は、日付値から月の部分を抽出します。
$second $second演算子は、日付値から秒部分を抽出します。
$week $week演算子は、日付の週番号を 0 ~ 53 の値として返します。
$year $year演算子は、日付の年を 4 桁の数値として返します。

要素クエリ

要素クエリ演算子は、ドキュメント要素の存在と種類に基づいてクエリを実行するために使用されます。

Description
$exists $exists演算子は、ドキュメント構造に指定されたフィールドを含むドキュメントを取得します。
$type $type演算子は、選択したフィールドが指定した型の場合にドキュメントを取得します。

評価クエリ

評価クエリ演算子は、式を評価し、動的な操作を実行するために使用されます。

Description
$expr $expr 演算子を使用すると、クエリ言語内で集計式を使用でき、複雑なフィールドの比較と計算が可能になります。
$jsonSchema $jsonSchema演算子は、JSON スキーマ定義に対してドキュメントを検証して、データの検証と構造の適用を行います。 サポートされている機能と制限事項について説明します。
$mod $mod 演算子は、フィールドの値に対して剰余演算を実行し、指定された結果を持つドキュメントを選択します。
$regex $regex演算子は、クエリでパターン マッチングを行う正規表現機能を提供し、柔軟な文字列マッチングと検索を可能にします。
$text $text演算子は、インデックス付き文字列フィールドの内容に対してテキスト検索を実行し、フルテキスト検索機能を有効にします。

フィールドの更新

フィールド更新演算子は、更新操作中にドキュメント内の特定のフィールドを変更するために使用されます。

Description
$currentDate $currentDate演算子は、フィールドの値を日付またはタイムスタンプとして現在の日付に設定します。
$inc $inc演算子は、フィールドの値を指定した量だけインクリメントします。
$mul $mul演算子は、フィールドの値に指定した数値を乗算します。
$rename $rename演算子を使用すると、更新操作中にドキュメント内のフィールドの名前を変更できます。
$setOnInsert $setOnInsert演算子は、アップサート操作によって新しいドキュメントが挿入された場合にのみ、フィールド値を設定します。

Geospatial

地理空間演算子は、地理データと空間リレーションシップに対して操作を実行します。

Description
$box $box 演算子は、座標ペアを使用して地理空間クエリの長方形の領域を定義します。
$center $center 演算子は、$geoWithin クエリのレガシ座標ペアを使用して円を指定します。
$centerSphere $centerSphere演算子は、$geoWithin クエリに球面ジオメトリを使用して円を指定します。
$geoIntersects $geoIntersects演算子は、場所フィールドが指定された GeoJSON オブジェクトと交差するドキュメントを選択します。
$geometry $geometry演算子は、地理空間クエリの GeoJSON ジオメトリを指定します。
$geoWithin $geoWithin 演算子は、指定されたジオメトリ内に location field が完全に含まれるドキュメントを選択します。
$maxDistance $maxDistance演算子は、地理空間クエリの 2 つのポイント間に存在できる最大距離を指定します。
$minDistance $minDistance演算子は、地理空間クエリの 2 つのポイント間に存在する必要がある最小距離を指定します。
$near $near 演算子は、位置フィールドが指定したポイントの近くにあるドキュメントを返し、それらを距離で並べ替えます。
$nearSphere $nearSphere 演算子は、位置フィールドが球面上の指定したポイントの近くにあるドキュメントを返し、それらを球面上の距離で並べ替えます。
$polygon $polygon演算子は、地理空間クエリの多角形を定義し、不規則な図形内の位置を検索できるようにします。

リテラル式

リテラル式演算子は、集計式のリテラル値を表すために使用されます。

Description
$literal $literal演算子は、式として解析せずに指定された値を返し、集計パイプラインでリテラル値を使用できるようにします。

論理クエリ

論理クエリ演算子は、論理演算を使用してブール式を結合します。

Description
$and $and演算子は、複数のクエリ句を結合し、指定されたすべての条件に一致するドキュメントを返します。
$nor $nor演算子は、式の配列に対して論理 NOR を実行し、すべての条件に失敗したドキュメントを取得します。
$not $not演算子は、指定した式に対して論理 NOT 演算を実行し、式と一致しないドキュメントを選択します。
$or $or演算子は、クエリ句を論理 OR と結合し、指定された条件の少なくとも 1 つに一致するドキュメントを返します。

Miscellaneous

その他の演算子には、他のカテゴリに収まらないさまざまなユーティリティ演算子とヘルパー演算子が含まれます。

Description
$getField $getField演算子を使用すると、指定したフィールドの値をドキュメントから取得できます。
$sampleRate $sampleRate演算子は、指定された確率率に基づいてコレクションからドキュメントをランダムにサンプリングし、統計分析とテストに役立ちます。

その他のクエリ

その他のクエリ演算子には、他のカテゴリに収まらないクエリを実行するためのさまざまなユーティリティ演算子とヘルパー演算子が含まれます。

Description
$comment $comment演算子は、ログとプロファイラーの出力でクエリを識別するのに役立つコメントをクエリに追加します。
$natural $natural演算子は、クエリでコレクション内のドキュメントの自然な順序を使用するように強制し、ドキュメントの順序と取得を制御します。
$rand $rand演算子は、0 ~ 1 のランダムな浮動小数点値を生成します。

オブジェクト式

オブジェクト式演算子は、オブジェクトとオブジェクトのプロパティに対して操作を実行します。

Description
$mergeObjects $mergeObjects演算子は、複数のドキュメントを 1 つのドキュメントにマージします。
$objectToArray objectToArray コマンドは、ドキュメント (オブジェクト) をキーと値のペアの配列に変換するために使用されます。
$setField setField コマンドは、埋め込みドキュメント内のフィールドを追加、更新、または削除するために使用されます。

Projection

プロジェクション演算子は、ドキュメント内のフィールドを選択および変換するために使用されます。

Description
$meta $meta演算子は、返されたデータセットを含む計算メタデータ列を返します。

式の設定

セット式演算子は、セットとして扱われるセットと配列に対して操作を実行します。

Description
$allElementsTrue 配列内のすべての要素が true と評価された場合、$allElementsTrue演算子は true を返します。
$anyElementTrue 配列内の要素が true の値に評価された場合、$anyElementTrue演算子は true を返します。
$setDifference $setDifference演算子は、1 つのセットに存在するが、2 つ目のセットには存在しない要素を持つセットを返します。
$setEquals $setEquals演算子は、2 つのセットに同じ個別の要素がある場合に true を返します。
$setIntersection $setIntersection演算子は、すべての入力配列に表示される共通の要素を返します。
$setIsSubset $setIsSubset演算子は、1 つの配列が 2 番目の配列のサブセットであるかどうかを判断します。
$setUnion $setUnion演算子は、入力配列のすべての一意の要素を含む配列を返します。

Timestamp 式

タイムスタンプ式演算子は、タイムスタンプ値に対して操作を実行します。

Description
$tsIncrement $tsIncrement演算子は、タイムスタンプ値から増分部分を抽出します。
$tsSecond $tsSecond演算子は、タイムスタンプ値から秒部分を抽出します。

変数式

変数式演算子は、式内の変数を定義および参照するために使用されます。

Description
$let $let演算子を使用すると、指定した式で使用する変数を定義し、複雑な計算を可能にし、コードの繰り返しを減らすことができます。

ウィンドウ演算子

ウィンドウ演算子は、指定されたウィンドウ内の一連のドキュメントにわたって計算を実行します。

Description
$covariancePop $covariancePop 演算子は、2 つの数値式の共分散を返します。
$covarianceSamp $covarianceSamp演算子は、2 つの数値式のサンプルの共分散を返します
$denseRank $denseRank演算子は、指定された並べ替え順序に基づいて、パーティション内の各ドキュメントの位置付けを割り当てて返します。
$derivative $derivative演算子は、指定されたウィンドウ内のフィールドの値の平均変化率を計算します。
$documentNumber $documentNumber演算子は、指定した並べ替え順序に基づいて、パーティション内の各ドキュメントの位置を割り当てて返します。
$expMovingAvg $expMovingAvg演算子は、指定された数のドキュメントに基づいてフィールドの移動平均を計算し、最も高い重みを保持します。
$integral $integral演算子は、計算のために隣接するドキュメントを形成する指定された範囲のドキュメントを含む曲線の下の領域を計算します。
$linearFill $linearFill演算子は、線形補間を使用して、ドキュメントのシーケンス内の欠損値を補間します。
$locf $locf演算子は、ウィンドウ化されたクエリ内のパーティション内で最後に観察された null 以外の値を前方に伝達します。
$rank $rank演算子は、指定された並べ替え順序に基づいてパーティション内のドキュメントをランク付けします。
$shift usage on DocumentDB パーティション内の値をシフトし、シフトされた値を返すウィンドウ演算子。