共用方式為


MongoDB 查詢語言 (MQL) 在 Azure DocumentDB 中的相容性

Azure DocumentDB 提供全面的 MongoDB 查詢語言(MQL)相容性,結合 MongoDB 熟悉的功能與 Azure 的企業級能力。 本文提供 MQL 在 5.0-8.0 版本間的相容性及功能支援的版本概述,包括運算子、指令、索引及 MongoDB 線路協定。 應用程式無需更改程式碼即可運行,使用相同的用戶端驅動程式、SDK 和工具。 使用者受益於 Azure 的可擴展性、安全性以及與其他 Azure 服務的整合。

網路協定支援

Azure DocumentDB 服務使用 MongoDB 線協定,提供與現有工具與驅動程式無縫相容。 任何支援 MongoDB 線路協定的客戶端驅動程式都能連接到 Azure DocumentDB,因此應用程式可以在不修改程式碼的情況下運行。

開發人員可以保留相同的用戶端驅動程式、軟體開發套件 (SDK) 和工具。 身為使用者,您也可以獲得 Azure 的延展性、安全性,以及與 Azure 平台內其他服務的深度整合。

查詢語言支援

除了協定支援外,Azure DocumentDB 也全面支援 MongoDB 查詢語言結構。

相容性理念

整體產品相容性是透過評估服務支援的 MongoDB 運算子 (彙總階段、彙總運算子、查詢和投影運算子和更新運算子) 的數量來決定。 MongoDB 指令與管理操作不包含在此計算中,因為 Azure DocumentDB 作為 PaaS 產品,大部分指令皆由內部支援,無需使用者介入。 這些命令不會公開給使用者;不過,根據使用模式和客戶意見反應,可以使用常用命令的子集來簡化使用者體驗。

如今的整體產品兼容性為 99.02%。 下列相容性摘要表格詳細說明每個運算子類型的支援:

總數 支援 百分比
聚合階段 60 58 96.67%
彙總運算子 181 181 100%
查詢和投影運算子 45 44 97.78%
更新運算子 22 22 100%

以下部分全面介紹了支援的資料庫運算子、命令和更多功能,提供了產品在各種場景下的相容性和功能的清晰視圖。

運營商

此表列出目前 Azure DocumentDB 支援的運算元:

類別 Operator 支援 (v5.0) 支援版本 6.0 支援(v7.0) 支援(v8.0)
比較查詢運算子 $eq ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較查詢運算子 $gt ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較查詢運算子 $gte ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較查詢運算子 $in ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較查詢運算子 $lt ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較查詢運算子 $lte ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較查詢運算子 $ne ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較查詢運算子 $nin ✅ 是 ✅ 是 ✅ 是 ✅ 是
邏輯查詢運算子 $and ✅ 是 ✅ 是 ✅ 是 ✅ 是
邏輯查詢運算子 $not ✅ 是 ✅ 是 ✅ 是 ✅ 是
邏輯查詢運算子 $nor ✅ 是 ✅ 是 ✅ 是 ✅ 是
邏輯查詢運算子 $or ✅ 是 ✅ 是 ✅ 是 ✅ 是
元素查詢運算子 $exists ✅ 是 ✅ 是 ✅ 是 ✅ 是
元素查詢運算子 $type ✅ 是 ✅ 是 ✅ 是 ✅ 是
評估查詢運算子 $expr ✅ 是 ✅ 是 ✅ 是 ✅ 是
評估查詢運算子 $jsonSchema* ✅ 是 ✅ 是 ✅ 是 ✅ 是
評估查詢運算子 $mod ✅ 是 ✅ 是 ✅ 是 ✅ 是
評估查詢運算子 $regex ✅ 是 ✅ 是 ✅ 是 ✅ 是
評估查詢運算子 $text ✅ 是 ✅ 是 ✅ 是 ✅ 是
評估查詢運算子 $where Mongo 8.0 版中已經被棄用
地理空間運算子 $geoIntersects ✅ 是 ✅ 是 ✅ 是 ✅ 是
地理空間運算子 $geoWithin ✅ 是 ✅ 是 ✅ 是 ✅ 是
地理空間運算子 $box ✅ 是 ✅ 是 ✅ 是 ✅ 是
地理空間運算子 $center ✅ 是 ✅ 是 ✅ 是 ✅ 是
地理空間運算子 $centerSphere ✅ 是 ✅ 是 ✅ 是 ✅ 是
地理空間運算子 $geometry ✅ 是 ✅ 是 ✅ 是 ✅ 是
地理空間運算子 $maxDistance ✅ 是 ✅ 是 ✅ 是 ✅ 是
地理空間運算子 $minDistance ✅ 是 ✅ 是 ✅ 是 ✅ 是
地理空間運算子 $polygon ✅ 是 ✅ 是 ✅ 是 ✅ 是
地理空間運算子 $near ✅ 是 ✅ 是 ✅ 是 ✅ 是
地理空間運算子 $nearSphere ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列查詢運算子 $all ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列查詢運算子 $elemMatch ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列查詢運算子 $size ✅ 是 ✅ 是 ✅ 是 ✅ 是
位元查詢運算子 $bitsAllClear ✅ 是 ✅ 是 ✅ 是 ✅ 是
位元查詢運算子 $bitsAllSet ✅ 是 ✅ 是 ✅ 是 ✅ 是
位元查詢運算子 $bitsAnyClear ✅ 是 ✅ 是 ✅ 是 ✅ 是
位元查詢運算子 $bitsAnySet ✅ 是 ✅ 是 ✅ 是 ✅ 是
投影運算子 $ ✅ 是 ✅ 是 ✅ 是 ✅ 是
投影運算子 $elemMatch ✅ 是 ✅ 是 ✅ 是 ✅ 是
投影運算子 $meta ❌ 否 ❌ 否 ❌ 否 ❌ 否
投影運算子 $slice ✅ 是 ✅ 是 ✅ 是 ✅ 是
其他查詢運算子 $comment ✅ 是 ✅ 是 ✅ 是 ✅ 是
其他查詢運算子 $rand ✅ 是 ✅ 是 ✅ 是 ✅ 是
其他查詢運算子 $natural ✅ 是 ✅ 是 ✅ 是 ✅ 是
欄位更新運算子 $currentDate ✅ 是 ✅ 是 ✅ 是 ✅ 是
欄位更新運算子 $inc ✅ 是 ✅ 是 ✅ 是 ✅ 是
欄位更新運算子 $min ✅ 是 ✅ 是 ✅ 是 ✅ 是
欄位更新運算子 $max ✅ 是 ✅ 是 ✅ 是 ✅ 是
欄位更新運算子 $mul ✅ 是 ✅ 是 ✅ 是 ✅ 是
欄位更新運算子 $rename ✅ 是 ✅ 是 ✅ 是 ✅ 是
欄位更新運算子 $set ✅ 是 ✅ 是 ✅ 是 ✅ 是
欄位更新運算子 $setOnInsert ✅ 是 ✅ 是 ✅ 是 ✅ 是
欄位更新運算子 $unset ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列更新運算子 $ ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列更新運算子 $[] ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列更新運算子 $[identifier] ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列更新運算子 $addToSet ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列更新運算子 $pop ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列更新運算子 $pull ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列更新運算子 $push ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列更新運算子 $pullAll ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列更新運算子 $each ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列更新運算子 $position ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列更新運算子 $slice ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列更新運算子 $sort ✅ 是 ✅ 是 ✅ 是 ✅ 是
位元更新運算子 $bit ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $abs ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $add ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $ceil ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $divide ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $exp ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $floor ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $ln ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $log ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $log10 ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $mod ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $multiply ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $pow ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $round ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $sqrt ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $subtract ✅ 是 ✅ 是 ✅ 是 ✅ 是
算術運算式運算子 $trunc ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $arrayElemAt ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $arrayToObject ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $concatArrays ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $filter ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $firstN ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $in ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $indexOfArray ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $isArray ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $lastN ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $map ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $maxN ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $minN ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $objectToArray ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $range ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $reduce ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $reverseArray ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $size ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $slice ✅ 是 ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $sortArray ✅ 是 ✅ 是 ✅ 是
陣列運算式運算子 $zip ✅ 是 ✅ 是 ✅ 是 ✅ 是
位元運算子 $bitAnd ✅ 是 ✅ 是 ✅ 是 ✅ 是
位元運算子 $bitNot ✅ 是 ✅ 是 ✅ 是 ✅ 是
位元運算子 $bitOr ✅ 是 ✅ 是 ✅ 是 ✅ 是
位元運算子 $bitXor ✅ 是 ✅ 是 ✅ 是 ✅ 是
布林值運算式運算子 $and ✅ 是 ✅ 是 ✅ 是 ✅ 是
布林值運算式運算子 $not ✅ 是 ✅ 是 ✅ 是 ✅ 是
布林值運算式運算子 $or ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較運算式運算子 $cmp ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較運算式運算子 $eq ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較運算式運算子 $gt ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較運算式運算子 $gte ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較運算式運算子 $lt ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較運算式運算子 $lte ✅ 是 ✅ 是 ✅ 是 ✅ 是
比較運算式運算子 $ne ✅ 是 ✅ 是 ✅ 是 ✅ 是
自訂彙總運算式運算子 $accumulator Mongo 8.0 版中已經被棄用
自訂彙總運算式運算子 $function Mongo 8.0 版中已經被棄用
資料大小運算子 $bsonSize ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料大小運算子 $binarySize ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $dateAdd ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $dateDiff ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $dateFromParts ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $dateFromString ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $dateSubtract ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $dateToParts ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $dateToString ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $dateTrunc ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $dayOfMonth ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $dayOfWeek ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $dayOfYear ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $hour ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $isoDayOfWeek ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $isoWeek ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $isoWeekYear ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $millisecond ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $minute ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $month ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $second ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $toDate ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $week ✅ 是 ✅ 是 ✅ 是 ✅ 是
資料運算式運算子 $year ✅ 是 ✅ 是 ✅ 是 ✅ 是
常值運算式運算子 $literal ✅ 是 ✅ 是 ✅ 是 ✅ 是
其他運算子 $getField ✅ 是 ✅ 是 ✅ 是 ✅ 是
其他運算子 $rand ✅ 是 ✅ 是 ✅ 是 ✅ 是
其他運算子 $sampleRate ✅ 是 ✅ 是 ✅ 是 ✅ 是
物件運算式運算子 $mergeObjects ✅ 是 ✅ 是 ✅ 是 ✅ 是
物件運算式運算子 $objectToArray ✅ 是 ✅ 是 ✅ 是 ✅ 是
物件運算式運算子 $setField ✅ 是 ✅ 是 ✅ 是 ✅ 是
集合運算式運算子 $allElementsTrue ✅ 是 ✅ 是 ✅ 是 ✅ 是
集合運算式運算子 $anyElementTrue ✅ 是 ✅ 是 ✅ 是 ✅ 是
集合運算式運算子 $setDifference ✅ 是 ✅ 是 ✅ 是 ✅ 是
集合運算式運算子 $setEquals ✅ 是 ✅ 是 ✅ 是 ✅ 是
集合運算式運算子 $setIntersection ✅ 是 ✅ 是 ✅ 是 ✅ 是
集合運算式運算子 $setIsSubset ✅ 是 ✅ 是 ✅ 是 ✅ 是
集合運算式運算子 $setUnion ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $concat ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $dateFromString ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $dateToString ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $indexOfBytes ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $indexOfCP ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $ltrim ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $regexFind ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $regexFindAll ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $regexMatch ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $replaceOne ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $replaceAll ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $rtrim ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $split ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $strLenBytes ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $strLenCP ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $strcasecmp ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $substr ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $substrBytes ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $substrCP ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $toLower ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $toString ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $trim ✅ 是 ✅ 是 ✅ 是 ✅ 是
字串運算式運算子 $toUpper ✅ 是 ✅ 是 ✅ 是 ✅ 是
文字運算式運算子 $meta ❌ 否 ❌ 否 ❌ 否 ❌ 否
時間戳記運算式運算子 $tsIncrement ✅ 是 ✅ 是 ✅ 是 ✅ 是
時間戳記運算式運算子 $tsSecond ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $sin ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $cos ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $tan ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $asin ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $acos ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $atan ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $atan2 ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $asinh ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $acosh ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $atanh ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $sinh ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $cosh ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $tanh ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $degreesToRadians ✅ 是 ✅ 是 ✅ 是 ✅ 是
三角運算式運算子 $radiansToDegrees ✅ 是 ✅ 是 ✅ 是 ✅ 是
類型運算式運算子 $convert ✅ 是 ✅ 是 ✅ 是 ✅ 是
類型運算式運算子 $isNumber ✅ 是 ✅ 是 ✅ 是 ✅ 是
類型運算式運算子 $toBool ✅ 是 ✅ 是 ✅ 是 ✅ 是
類型運算式運算子 $toDate ✅ 是 ✅ 是 ✅ 是 ✅ 是
類型運算式運算子 $toDecimal ✅ 是 ✅ 是 ✅ 是 ✅ 是
類型運算式運算子 $toDouble ✅ 是 ✅ 是 ✅ 是 ✅ 是
類型運算式運算子 $toInt ✅ 是 ✅ 是 ✅ 是 ✅ 是
類型運算式運算子 $toLong ✅ 是 ✅ 是 ✅ 是 ✅ 是
類型運算式運算子 $toObjectId ✅ 是 ✅ 是 ✅ 是 ✅ 是
類型運算式運算子 $toString ✅ 是 ✅ 是 ✅ 是 ✅ 是
類型運算式運算子 $type ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $accumulator Mongo 8.0 版中已經被棄用
累加器 ($group$bucket$bucketAuto$setWindowFields $addToSet ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $avg ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $bottom ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $bottomN ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $count ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $first ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $firstN ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $last ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $lastN ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $max ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $maxN ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $median ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $mergeObjects ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $min ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $percentile ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $push ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $stdDevPop ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $stdDevSamp ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $sum ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $top ✅ 是 ✅ 是 ✅ 是
累加器 ($group$bucket$bucketAuto$setWindowFields $topN ✅ 是 ✅ 是 ✅ 是
累加器(在其他階段中) $avg ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器(在其他階段中) $first ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器(在其他階段中) $last ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器(在其他階段中) $max ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器(在其他階段中) $median ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器(在其他階段中) $min ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器(在其他階段中) $percentile ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器(在其他階段中) $stdDevPop ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器(在其他階段中) $stdDevSamp ✅ 是 ✅ 是 ✅ 是 ✅ 是
累加器(在其他階段中) $sum ✅ 是 ✅ 是 ✅ 是 ✅ 是
變數運算式運算子 $let ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $sum ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $push ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $addToSet ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $count ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $max ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $min ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $avg ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $stdDevPop ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $bottom ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $bottomN ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $covariancePop ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $covarianceSamp ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $denseRank ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $derivative ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $documentNumber ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $expMovingAvg ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $first ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $integral ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $last ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $linearFill ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $locf ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $minN ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $rank ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $shift ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $stdDevSamp ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $top ✅ 是 ✅ 是 ✅ 是 ✅ 是
視窗運算子 $topN ✅ 是 ✅ 是 ✅ 是 ✅ 是
條件運算式運算子 $cond ✅ 是 ✅ 是 ✅ 是 ✅ 是
條件運算式運算子 $ifNull ✅ 是 ✅ 是 ✅ 是 ✅ 是
條件運算式運算子 $switch ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $addFields ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $bucket ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $bucketAuto ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $changeStream ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $changeStreamSplitLargeEvent ❌ 否 ❌ 否 ❌ 否 ❌ 否
彙總管線階段 $collStats ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $count ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $densify ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $documents ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $facet ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $fill ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $geoNear ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $graphLookup ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $group ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $indexStats ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $limit ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $listSampledQueries ❌ 否 ❌ 否 ❌ 否 ❌ 否
彙總管線階段 $listSearchIndexes ❌ 否 ❌ 否 ❌ 否 ❌ 否
彙總管線階段 $listSessions ❌ 否 ❌ 否 ❌ 否 ❌ 否
彙總管線階段 $lookup ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $match ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $merge ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $out ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $planCacheStats ❌ 否 ❌ 否 ❌ 否 ❌ 否
彙總管線階段 $project ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $redact ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $replaceRoot ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $replaceWith ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $sample ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $search ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $searchMeta ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $set ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $setWindowFields ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $skip ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $sort ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $sortByCount ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $unionWith ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $unset ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $unwind ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $shardedDataDistribution ❌ 否 ❌ 否 ❌ 否 ❌ 否
彙總管線階段 $currentOp ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總管線階段 $listLocalSessions ❌ 否 ❌ 否 ❌ 否 ❌ 否
彙總運算式中的變數 NOW ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總運算式中的變數 ROOT ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總運算式中的變數 REMOVE ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總運算式中的變數 CURRENT ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總運算式中的變數 CLUSTER_TIME ❌ 否 ❌ 否 ❌ 否 ❌ 否
彙總運算式中的變數 DESCEND ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總運算式中的變數 PRUNE ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總運算式中的變數 KEEP ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總運算式中的變數 SEARCH_META ❌ 否 ❌ 否 ❌ 否 ❌ 否
彙總運算式中的變數 USER_ROLES ❌ 否 ❌ 否 ❌ 否 ❌ 否

備註

AvgObjsize 並且 size in collStats & dbStats 僅適用於大小小於 2 KB 的文件。

結構描述驗證支援:insertupdatefindAndModify,以及彙總中的 $merge / $out 階段。 如有需要,用於 bypassDocumentValidation 略過驗證。

本文僅列出支援的伺服器端命令,不包含用戶端包裝函式。 用戶端包裝函式 (例如 deleteMany()updateMany()) 會在內部呼叫對應的伺服器指令 (delete()update())。 任何依賴支援伺服器指令的函式都與 Azure DocumentDB 相容。

資料庫命令

Azure DocumentDB 支援以下資料庫指令:

類別 Command 功能 (v5.0) 功能 (v6.0) 功能 (v7.0) 功能 (v8.0)
管理命令 cloneCollectionAsCapped ❌ 否 ❌ 否 ❌ 否 ❌ 否
管理命令 collMod ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 compact ❌ 否 ❌ 否 ❌ 否 ❌ 否
管理命令 convertToCapped ❌ 否 ❌ 否 ❌ 否 ❌ 否
管理命令 create ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 createIndexes ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 currentOp ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 drop ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 dropDatabase ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 dropIndexes ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 filemd5 ❌ 否 ❌ 否 ❌ 否 ❌ 否
管理命令 getDefaultRWConcern ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 getClusterParameter 不適用¹ ❌ 否 ❌ 否 ❌ 否
管理命令 getParameter ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 killCursors ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 killOp ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 listCollections ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 listDatabases ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 listIndexes ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 reIndex ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 renameCollection ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 setIndexCommitQuorum ❌ 否 ❌ 否 ❌ 否 ❌ 否
管理命令 setParameter ✅ 是 ✅ 是 ✅ 是 ✅ 是
管理命令 setDefaultRWConcern ❌ 否 ❌ 否 ❌ 否 ❌ 否
管理命令 validateDBMetadata ❌ 否 ❌ 否 ❌ 否 ❌ 否
管理命令 dropConnections 不適用² 不適用² 不適用² 不適用²
管理命令 fsync 不適用² 不適用² 不適用² 不適用²
管理命令 fsyncUnlock 不適用² 不適用² 不適用² 不適用²
管理命令 logRotate 不適用² 不適用² 不適用² 不適用²
管理命令 rotateCertificates 不適用² 不適用² 不適用² 不適用²
管理命令 setFeatureCompatibilityVersion 不適用² 不適用² 不適用² 不適用²
管理命令 shutdown 不適用² 不適用² 不適用² 不適用²
管理命令 compactStructuredEncryptionData 不適用² 不適用² 不適用² 不適用²
管理命令 setUserWriteBlockMode 不適用² 不適用² 不適用² 不適用²
彙總命令 aggregate ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總命令 count ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總命令 distinct ✅ 是 ✅ 是 ✅ 是 ✅ 是
彙總命令 mapReduce 不適用³ 不適用³ 不適用³ 不適用³
驗證命令 authenticate ✅ 是 ✅ 是 ✅ 是 ✅ 是
驗證命令 logout 不適用³ 不適用³ 不適用³ 不適用³
診斷命令 buildInfo ✅ 是 ✅ 是 ✅ 是 ✅ 是
診斷命令 collStats ✅ 是 ✅ 是 ✅ 是 ✅ 是
診斷命令 connPoolStats ❌ 否 ❌ 否 ❌ 否 ❌ 否
診斷命令 connectionStatus ✅ 是 ✅ 是 ✅ 是 ✅ 是
診斷命令 dataSize ❌ 否 ❌ 否 ❌ 否 ❌ 否
診斷命令 dbHash ❌ 否 ❌ 否 ❌ 否 ❌ 否
診斷命令 dbStats ✅ 是 ✅ 是 ✅ 是 ✅ 是
診斷命令 explain ✅ 是 ✅ 是 ✅ 是 ✅ 是
診斷命令 getCmdLineOpts ✅ 是 ✅ 是 ✅ 是 ✅ 是
診斷命令 getLog ✅ 是 ✅ 是 ✅ 是 ✅ 是
診斷命令 hello ✅ 是 ✅ 是 ✅ 是 ✅ 是
診斷命令 hostInfo ✅ 是 ✅ 是 ✅ 是 ✅ 是
診斷命令 listCommands ✅ 是 ✅ 是 ✅ 是 ✅ 是
診斷命令 lockInfo ❌ 否 ❌ 否 ❌ 否 ❌ 否
診斷命令 ping ✅ 是 ✅ 是 ✅ 是 ✅ 是
診斷命令 profile 不適用² 不適用² 不適用² 不適用²
診斷命令 serverStatus ❌ 否 ❌ 否 ❌ 否 ❌ 否
診斷命令 shardConnPoolStats 不適用³ 不適用³ 不適用³ 不適用³
診斷命令 top ❌ 否 ❌ 否 ❌ 否 ❌ 否
診斷命令 validate ✅ 是 ✅ 是 ✅ 是 ✅ 是
診斷命令 whatsmyuri ✅ 是 ✅ 是 ✅ 是 ✅ 是
地理空間命令 geoSearch 不適用³ 不適用³ 不適用³ 不適用³
查詢和寫入作業命令 bulkWrite ❌ 否 ❌ 否 ❌ 否 ❌ 否
查詢和寫入作業命令 delete ✅ 是 ✅ 是 ✅ 是 ✅ 是
查詢和寫入作業命令 find ✅ 是 ✅ 是 ✅ 是 ✅ 是
查詢和寫入作業命令 findAndModify ✅ 是 ✅ 是 ✅ 是 ✅ 是
查詢和寫入作業命令 getLastError 不適用 不適用 不適用 不適用
查詢和寫入作業命令 getMore ✅ 是 ✅ 是 ✅ 是 ✅ 是
查詢和寫入作業命令 insert ✅ 是 ✅ 是 ✅ 是 ✅ 是
查詢和寫入作業命令 resetError 不適用³ 不適用³ 不適用³ 不適用³
查詢和寫入作業命令 update ✅ 是 ✅ 是 ✅ 是 ✅ 是
查詢計劃快取命令 不適用
複寫命令 不適用
角色管理命令 不適用
工作階段命令 abortTransaction ✅ 是 ✅ 是 ✅ 是 ✅ 是
工作階段命令 commitTransaction ✅ 是 ✅ 是 ✅ 是 ✅ 是
工作階段命令 endSessions ✅ 是 ✅ 是 ✅ 是 ✅ 是
工作階段命令 killAllSessions ❌ 否 ❌ 否 ❌ 否 ❌ 否
工作階段命令 killAllSessionsByPattern ❌ 否 ❌ 否 ❌ 否 ❌ 否
工作階段命令 killSessions ✅ 是 ✅ 是 ✅ 是 ✅ 是
工作階段命令 refreshSessions ❌ 否 ❌ 否 ❌ 否 ❌ 否
工作階段命令 startSession ✅ 是 ✅ 是 ✅ 是 ✅ 是
分區化命令 enableSharding ✅ 是 ✅ 是 ✅ 是 ✅ 是
分區化命令 isdbgrid ✅ 是 ✅ 是 ✅ 是 ✅ 是
分區化命令 reshardCollection ✅ 是 ✅ 是 ✅ 是 ✅ 是
分區化命令 shardCollection ✅ 是 ✅ 是 ✅ 是 ✅ 是
分區化命令 unsetSharding 不適用³ 不適用³ 不適用³ 不適用³
分區化命令 addShardToZone 不適用 不適用 不適用 不適用
分區化命令 clearJumboFlag 不適用 不適用 不適用 不適用
分區化命令 abortUnshardCollection 不適用 不適用 不適用 不適用
分區化命令 removeShard 不適用 不適用 不適用 不適用
分區化命令 removeShardFromZone 不適用 不適用 不適用 不適用
分區化命令 setShardVersion 不適用 不適用 不適用 不適用
分區化命令 mergeChunks 不適用 不適用 不適用 不適用
分區化命令 abortMoveCollection 不適用 不適用 不適用 不適用
分區化命令 getShardMap 不適用 不適用 不適用 不適用
分區化命令 analyzeShardKey 不適用 不適用 不適用 不適用
分區化命令 medianKey 不適用 不適用 不適用 不適用
分區化命令 checkMetadataConsistency 不適用 不適用 不適用 不適用
分區化命令 shardingState 不適用 不適用 不適用 不適用
分區化命令 cleanupReshardCollection 不適用 不適用 不適用 不適用
分區化命令 flushRouterConfig 不適用 不適用 不適用 不適用
分區化命令 balancerCollectionStatus 不適用 不適用 不適用 不適用
分區化命令 balancerStart 不適用 不適用 不適用 不適用
分區化命令 balancerStatus 不適用 不適用 不適用 不適用
分區化命令 balancerStop 不適用 不適用 不適用 不適用
分區化命令 configureCollectionBalancing 不適用 不適用 不適用 不適用
分區化命令 listShards 不適用 不適用 不適用 不適用
分區化命令 split 不適用 不適用 不適用 不適用
分區化命令 moveChunk 不適用 不適用 不適用 不適用
分區化命令 updateZoneKeyRange 不適用 不適用 不適用 不適用
分區化命令 movePrimary 不適用 不適用 不適用 不適用
分區化命令 moveRange 不適用 不適用 不適用 不適用
分區化命令 abortReshardCollection 不適用 不適用 不適用 不適用
分區化命令 commitReshardCollection 不適用 不適用 不適用 不適用
分區化命令 refineCollectionShardKey 不適用 不適用 不適用 不適用
分區化命令 configureQueryAnalyzer 不適用 不適用 不適用 不適用
分區化命令 transitionFromDedicatedConfigServer 不適用 不適用 不適用 不適用
分區化命令 transitionToDedicatedConfigServer 不適用 不適用 不適用 不適用
分區化命令 unshardCollection 不適用 不適用 不適用 不適用
系統事件稽核命令 logApplicationMessage ❌ 否 ❌ 否 ❌ 否 ❌ 否
使用者管理命令 createUser ✅ 是 ✅ 是 ✅ 是 ✅ 是
使用者管理命令 dropUser ✅ 是 ✅ 是 ✅ 是 ✅ 是
使用者管理命令 usersInfo ✅ 是 ✅ 是 ✅ 是 ✅ 是
使用者管理命令 dropAllUsersFromDatabase 不適用 不適用 不適用 不適用
使用者管理命令 grantRolesToUser 不適用 不適用 不適用 不適用
使用者管理命令 revokeRolesFromUser 不適用 不適用 不適用 不適用
使用者管理命令 updateUser 不適用 不適用 不適用 不適用

備註

  1. getClusterParameter v5.0 不支援。
  2. Azure 完全管理 Azure DocumentDB,一個 PaaS 服務,用於像 dropConnectionsfsynclogRotate、 等指令。
  3. 在 MongoDB 5.0 版中已被取代。
  4. 在 MongoDB 5.1 版中已棄用。
  5. 作為 PaaS 服務,資料庫引擎會為您管理查詢計劃快取。
  6. Azure 會管理複寫,無需手動複寫。
  7. 作為完全受控的服務,這項功能是透過 Microsoft Entra ID 提供。
  8. 作為 PaaS 供應專案,Azure 會處理分區管理和重新平衡。 您只需要對您的資料集合進行分片。 Azure 會處理其餘的工作。

索引類型

Azure DocumentDB 支援以下索引類型:

Index Description 支援
單一欄位索引 為單一欄位建立索引,以加快查詢速度。 ✅ 是
複合索引 在一個索引中索引多個欄位。 ✅ 是
多重索引鍵索引 透過索引每個元素來索引陣列欄位。 ✅ 是
文字索引 支援字串欄位的文字搜尋。 ✅ 是
萬用字元索引 動態索引所有或選取的欄位。 ✅ 是
地理空間索引 支援對 GeoJSON 資料進行空間查詢。 ✅ 是
雜湊索引 為雜湊欄位值編製索引,通常用於分區化。 ✅ 是
向量索引(僅在 DocumentDB 中) 啟用向量資料的相似性搜尋。 ✅ 是的,有 向量搜尋

備註

建立唯一索引會在整個組建流程中取得集合的獨佔鎖定。 這些索引會封鎖集合上的讀取和寫入作業,直到作業完成為止。

索引屬性

Azure DocumentDB 支援以下索引屬性:

Index 屬性 Description 支援
存留時間 (TTL) 在指定的存留時間後自動刪除文件。 ✅ 是
唯一 確保索引欄位中的所有值都是唯一的。 ✅ 是
部分的 僅索引符合指定篩選條件的文件。 ✅ 是
不區分大小寫 支援字串欄位的不區分大小寫索引。 ✅ 是
疏鬆 僅索引包含索引欄位的文件。 ✅ 是
背景 允許在背景建立索引,而不會封鎖作業。 ✅ 是