MongoDB Query Language (MQL) compatibility in Azure DocumentDB

Azure DocumentDB provides comprehensive MongoDB Query Language (MQL) compatibility, combining MongoDB's familiar features with Azure's enterprise capabilities. This article provides a version-wise overview of MQL compatibility and feature support across versions 5.0-8.0, including operators, commands, indexes, and the MongoDB wire protocol. Applications can run without code changes, using the same client drivers, SDKs, and tools. Users benefit from Azure's scalability, security, and integration with other Azure services.

Network protocol support

Azure DocumentDB service uses the MongoDB wire protocol, which provides seamless compatibility with existing tools and drivers. Any client driver that supports the MongoDB wire protocol can connect to Azure DocumentDB, so applications can run without code changes.

Developers can keep the same client drivers, software development kits (SDKs), and tools. As a user, you also gain Azure's scalability, security, and deep integration with other services within the Azure platform.

Query language support

In addition to protocol support, Azure DocumentDB provides comprehensive support for MongoDB query language constructs as well.

Note

Azure DocumentDB delivers 99.03% MongoDB compatibility via the wire protocol.

Compatibility philosophy

Overall product compatibility is determined by evaluating the number of MongoDB operators (Aggregation Stages, Aggregation Operators, Query, and Projection Operators and Update Operators) supported by the service. MongoDB commands and admin operations are excluded from this calculation because Azure DocumentDB, as a PaaS offering, supports most these commands in-house, eliminating the need for user intervention. These commands aren't exposed to users; however, based on usage patterns and customer feedback, a subset of commonly used commands is available to simplify the user experience.

The compatibility summary table below details support for each operator type:

Total Supported Percentage
Aggregation Stages 60 58 96.67%
Aggregation Operators 181 181 100%
Query and Projection Operators 45 44 97.78%
Update Operators 22 22 100%

The following section presents a comprehensive breakdown of supported database operators, commands, and more features, offering a clear view of the product’s compatibility and functionality across various scenarios.

Operators

The table here lists the operators that are currently supported in Azure DocumentDB:

Category Operator Supported (v5.0) Supported (v6.0) Supported (v7.0) Supported (v8.0)
Comparison Query Operators $eq βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Query Operators $gt βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Query Operators $gte βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Query Operators $in βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Query Operators $lt βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Query Operators $lte βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Query Operators $ne βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Query Operators $nin βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Logical Query Operators $and βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Logical Query Operators $not βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Logical Query Operators $nor βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Logical Query Operators $or βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Element Query Operators $exists βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Element Query Operators $type βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Evaluation Query Operators $expr βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Evaluation Query Operators $jsonSchema* βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Evaluation Query Operators $mod βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Evaluation Query Operators $regex βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Evaluation Query Operators $text βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Evaluation Query Operators $where Deprecated in Mongo version 8.0
Geospatial Operators $geoIntersects βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Geospatial Operators $geoWithin βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Geospatial Operators $box βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Geospatial Operators $center βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Geospatial Operators $centerSphere βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Geospatial Operators $geometry βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Geospatial Operators $maxDistance βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Geospatial Operators $minDistance βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Geospatial Operators $polygon βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Geospatial Operators $near βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Geospatial Operators $nearSphere βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Query Operators $all βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Query Operators $elemMatch βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Query Operators $size βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Bitwise Query Operators $bitsAllClear βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Bitwise Query Operators $bitsAllSet βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Bitwise Query Operators $bitsAnyClear βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Bitwise Query Operators $bitsAnySet βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Projection Operators $ βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Projection Operators $elemMatch βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Projection Operators $meta βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Projection Operators $slice βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Miscellaneous Query Operators $comment βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Miscellaneous Query Operators $rand βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Miscellaneous Query Operators $natural βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Field Update Operators $currentDate βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Field Update Operators $inc βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Field Update Operators $min βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Field Update Operators $max βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Field Update Operators $mul βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Field Update Operators $rename βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Field Update Operators $set βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Field Update Operators $setOnInsert βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Field Update Operators $unset βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Update Operators $ βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Update Operators $[] βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Update Operators $[identifier] βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Update Operators $addToSet βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Update Operators $pop βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Update Operators $pull βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Update Operators $push βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Update Operators $pullAll βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Update Operators $each βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Update Operators $position βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Update Operators $slice βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Update Operators $sort βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Bitwise Update Operators $bit βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $abs βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $add βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $ceil βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $divide βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $exp βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $floor βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $ln βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $log βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $log10 βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $mod βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $multiply βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $pow βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $round βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $sqrt βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $subtract βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Arithmetic Expression Operators $trunc βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $arrayElemAt βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $arrayToObject βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $concatArrays βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $filter βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $firstN βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $in βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $indexOfArray βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $isArray βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $lastN βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $map βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $maxN βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $minN βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $objectToArray βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $range βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $reduce βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $reverseArray βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $size βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $slice βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $sortArray βœ… Yes βœ… Yes βœ… Yes
Array Expression Operators $zip βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Bitwise Operators $bitAnd βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Bitwise Operators $bitNot βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Bitwise Operators $bitOr βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Bitwise Operators $bitXor βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Boolean Expression Operators $and βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Boolean Expression Operators $not βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Boolean Expression Operators $or βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Expression Operators $cmp βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Expression Operators $eq βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Expression Operators $gt βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Expression Operators $gte βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Expression Operators $lt βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Expression Operators $lte βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Comparison Expression Operators $ne βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Custom Aggregation Expression Operators $accumulator Deprecated in Mongo version 8.0
Custom Aggregation Expression Operators $function Deprecated in Mongo version 8.0
Data Size Operators $bsonSize βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Data Size Operators $binarySize βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $dateAdd βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $dateDiff βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $dateFromParts βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $dateFromString βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $dateSubtract βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $dateToParts βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $dateToString βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $dateTrunc βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $dayOfMonth βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $dayOfWeek βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $dayOfYear βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $hour βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $isoDayOfWeek βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $isoWeek βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $isoWeekYear βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $millisecond βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $minute βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $month βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $second βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $toDate βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $week βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Date Expression Operators $year βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Literal Expression Operator $literal βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Miscellaneous Operators $getField βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Miscellaneous Operators $rand βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Miscellaneous Operators $sampleRate βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Object Expression Operators $mergeObjects βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Object Expression Operators $objectToArray βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Object Expression Operators $setField βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Set Expression Operators $allElementsTrue βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Set Expression Operators $anyElementTrue βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Set Expression Operators $setDifference βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Set Expression Operators $setEquals βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Set Expression Operators $setIntersection βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Set Expression Operators $setIsSubset βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Set Expression Operators $setUnion βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $concat βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $dateFromString βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $dateToString βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $indexOfBytes βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $indexOfCP βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $ltrim βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $regexFind βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $regexFindAll βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $regexMatch βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $replaceOne βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $replaceAll βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $rtrim βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $split βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $strLenBytes βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $strLenCP βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $strcasecmp βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $substr βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $substrBytes βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $substrCP βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $toLower βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $toString βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $trim βœ… Yes βœ… Yes βœ… Yes βœ… Yes
String Expression Operators $toUpper βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Text Expression Operator $meta βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Timestamp Expression Operators $tsIncrement βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Timestamp Expression Operators $tsSecond βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $sin βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $cos βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $tan βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $asin βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $acos βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $atan βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $atan2 βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $asinh βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $acosh βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $atanh βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $sinh βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $cosh βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $tanh βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $degreesToRadians βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Trigonometry Expression Operators $radiansToDegrees βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Type Expression Operators $convert βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Type Expression Operators $isNumber βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Type Expression Operators $toBool βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Type Expression Operators $toDate βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Type Expression Operators $toDecimal βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Type Expression Operators $toDouble βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Type Expression Operators $toInt βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Type Expression Operators $toLong βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Type Expression Operators $toObjectId βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Type Expression Operators $toString βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Type Expression Operators $type βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $accumulator Deprecated in Mongo version 8.0
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $addToSet βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $avg βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $bottom βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $bottomN βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $count βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $first βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $firstN βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $last βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $lastN βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $max βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $maxN βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $median βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $mergeObjects βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $min βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $percentile βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $push βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $stdDevPop βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $stdDevSamp βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $sum βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $top βœ… Yes βœ… Yes βœ… Yes
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) $topN βœ… Yes βœ… Yes βœ… Yes
Accumulators (in Other Stages) $avg βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators (in Other Stages) $first βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators (in Other Stages) $last βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators (in Other Stages) $max βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators (in Other Stages) $median βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators (in Other Stages) $min βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators (in Other Stages) $percentile βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators (in Other Stages) $stdDevPop βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators (in Other Stages) $stdDevSamp βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Accumulators (in Other Stages) $sum βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Variable Expression Operators $let βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $sum βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $push βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $addToSet βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $count βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $max βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $min βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $avg βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $stdDevPop βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $bottom βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $bottomN βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $covariancePop βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $covarianceSamp βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $denseRank βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $derivative βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $documentNumber βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $expMovingAvg βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $first βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $integral βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $last βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $linearFill βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $locf βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $minN βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $rank βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $shift βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $stdDevSamp βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $top βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Window Operators $topN βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Conditional Expression Operators $cond βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Conditional Expression Operators $ifNull βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Conditional Expression Operators $switch βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $addFields βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $bucket βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $bucketAuto βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $changeStream βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $changeStreamSplitLargeEvent ❌ No ❌ No ❌ No ❌ No
Aggregation Pipeline Stages $collStats βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $count βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $densify βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $documents βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $facet βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $fill βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $geoNear βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $graphLookup βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $group βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $indexStats βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $limit βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $listSampledQueries ❌ No ❌ No ❌ No ❌ No
Aggregation Pipeline Stages $listSearchIndexes ❌ No ❌ No ❌ No ❌ No
Aggregation Pipeline Stages $listSessions ❌ No ❌ No ❌ No ❌ No
Aggregation Pipeline Stages $lookup βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $match βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $merge βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $out βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $planCacheStats ❌ No ❌ No ❌ No ❌ No
Aggregation Pipeline Stages $project βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $redact βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $replaceRoot βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $replaceWith βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $sample βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $search βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $searchMeta βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $set βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $setWindowFields βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $skip βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $sort βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $sortByCount βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $unionWith βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $unset βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $unwind βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $shardedDataDistribution ❌ No ❌ No ❌ No ❌ No
Aggregation Pipeline Stages $currentOp βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Pipeline Stages $listLocalSessions ❌ No ❌ No ❌ No ❌ No
Variables in Aggregation Expressions NOW βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Variables in Aggregation Expressions ROOT βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Variables in Aggregation Expressions REMOVE βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Variables in Aggregation Expressions CURRENT βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Variables in Aggregation Expressions CLUSTER_TIME ❌ No ❌ No ❌ No ❌ No
Variables in Aggregation Expressions DESCEND βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Variables in Aggregation Expressions PRUNE βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Variables in Aggregation Expressions KEEP βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Variables in Aggregation Expressions SEARCH_META ❌ No ❌ No ❌ No ❌ No
Variables in Aggregation Expressions USER_ROLES ❌ No ❌ No ❌ No ❌ No

Note

AvgObjsize and size in collStats & dbStats only works with documents that are sized less than 2 kilobytes.

Schema validation supports: insert, update, findAndModify, and the $merge / $out stages in aggregation. Use bypassDocumentValidation to skip validation if needed.

This article lists only the supported server-side commands and doesn't include client-side wrapper functions. Client-side wrapper functions, such as deleteMany() and updateMany(), internally invoke the corresponding server commands (delete() and update()). Any function that relies on supported server commands is compatible with Azure DocumentDB.

Database commands

Azure DocumentDB supports the following database commands:

Category Command Feature (v5.0) Feature (v6.0) Feature (v7.0) Feature (v8.0)
Administrative Commands cloneCollectionAsCapped ❌ No ❌ No ❌ No ❌ No
Administrative Commands collMod βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands compact ❌ No ❌ No ❌ No ❌ No
Administrative Commands convertToCapped ❌ No ❌ No ❌ No ❌ No
Administrative Commands create βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands createIndexes βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands currentOp βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands drop βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands dropDatabase βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands dropIndexes βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands filemd5 ❌ No ❌ No ❌ No ❌ No
Administrative Commands getDefaultRWConcern βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands getClusterParameter N/A¹ ❌ No ❌ No ❌ No
Administrative Commands getParameter βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands killCursors βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands killOp βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands listCollections βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands listDatabases βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands listIndexes βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands reIndex βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands renameCollection βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands setIndexCommitQuorum ❌ No ❌ No ❌ No ❌ No
Administrative Commands setParameter βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Administrative Commands setDefaultRWConcern ❌ No ❌ No ❌ No ❌ No
Administrative Commands validateDBMetadata ❌ No ❌ No ❌ No ❌ No
Administrative Commands dropConnections N/AΒ² N/AΒ² N/AΒ² N/AΒ²
Administrative Commands fsync N/AΒ² N/AΒ² N/AΒ² N/AΒ²
Administrative Commands fsyncUnlock N/AΒ² N/AΒ² N/AΒ² N/AΒ²
Administrative Commands logRotate N/AΒ² N/AΒ² N/AΒ² N/AΒ²
Administrative Commands rotateCertificates N/AΒ² N/AΒ² N/AΒ² N/AΒ²
Administrative Commands setFeatureCompatibilityVersion N/AΒ² N/AΒ² N/AΒ² N/AΒ²
Administrative Commands shutdown N/AΒ² N/AΒ² N/AΒ² N/AΒ²
Administrative Commands compactStructuredEncryptionData N/AΒ² N/AΒ² N/AΒ² N/AΒ²
Administrative Commands setUserWriteBlockMode N/AΒ² N/AΒ² N/AΒ² N/AΒ²
Aggregation Commands aggregate βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Commands count βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Commands distinct βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Aggregation Commands mapReduce N/AΒ³ N/AΒ³ N/AΒ³ N/AΒ³
Authentication Commands authenticate βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Authentication Commands logout N/AΒ³ N/AΒ³ N/AΒ³ N/AΒ³
Diagnostic Commands buildInfo βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Diagnostic Commands collStats βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Diagnostic Commands connPoolStats ❌ No ❌ No ❌ No ❌ No
Diagnostic Commands connectionStatus βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Diagnostic Commands dataSize ❌ No ❌ No ❌ No ❌ No
Diagnostic Commands dbHash ❌ No ❌ No ❌ No ❌ No
Diagnostic Commands dbStats βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Diagnostic Commands explain βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Diagnostic Commands getCmdLineOpts βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Diagnostic Commands getLog βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Diagnostic Commands hello βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Diagnostic Commands hostInfo βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Diagnostic Commands listCommands βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Diagnostic Commands lockInfo ❌ No ❌ No ❌ No ❌ No
Diagnostic Commands ping βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Diagnostic Commands profile N/AΒ² N/AΒ² N/AΒ² N/AΒ²
Diagnostic Commands serverStatus ❌ No ❌ No ❌ No ❌ No
Diagnostic Commands shardConnPoolStats N/AΒ³ N/AΒ³ N/AΒ³ N/AΒ³
Diagnostic Commands top ❌ No ❌ No ❌ No ❌ No
Diagnostic Commands validate βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Diagnostic Commands whatsmyuri βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Geospatial Commands geoSearch N/AΒ³ N/AΒ³ N/AΒ³ N/AΒ³
Query and Write Operation Commands bulkWrite ❌ No ❌ No ❌ No ❌ No
Query and Write Operation Commands delete βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Query and Write Operation Commands find βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Query and Write Operation Commands findAndModify βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Query and Write Operation Commands getLastError N/A⁴ N/A⁴ N/A⁴ N/A⁴
Query and Write Operation Commands getMore βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Query and Write Operation Commands insert βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Query and Write Operation Commands resetError N/AΒ³ N/AΒ³ N/AΒ³ N/AΒ³
Query and Write Operation Commands update βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Query Plan Cache Commands N/A⁡
Replication Commands N/A⁢
Role Management Commands N/A⁷
Session Commands abortTransaction βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Session Commands commitTransaction βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Session Commands endSessions βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Session Commands killAllSessions ❌ No ❌ No ❌ No ❌ No
Session Commands killAllSessionsByPattern ❌ No ❌ No ❌ No ❌ No
Session Commands killSessions βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Session Commands refreshSessions ❌ No ❌ No ❌ No ❌ No
Session Commands startSession βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Sharding Commands enableSharding βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Sharding Commands isdbgrid βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Sharding Commands reshardCollection βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Sharding Commands shardCollection βœ… Yes βœ… Yes βœ… Yes βœ… Yes
Sharding Commands unsetSharding N/AΒ³ N/AΒ³ N/AΒ³ N/AΒ³
Sharding Commands addShardToZone N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands clearJumboFlag N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands abortUnshardCollection N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands removeShard N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands removeShardFromZone N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands setShardVersion N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands mergeChunks N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands abortMoveCollection N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands getShardMap N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands analyzeShardKey N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands medianKey N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands checkMetadataConsistency N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands shardingState N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands cleanupReshardCollection N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands flushRouterConfig N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands balancerCollectionStatus N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands balancerStart N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands balancerStatus N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands balancerStop N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands configureCollectionBalancing N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands listShards N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands split N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands moveChunk N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands updateZoneKeyRange N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands movePrimary N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands moveRange N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands abortReshardCollection N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands commitReshardCollection N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands refineCollectionShardKey N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands configureQueryAnalyzer N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands transitionFromDedicatedConfigServer N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands transitionToDedicatedConfigServer N/A⁸ N/A⁸ N/A⁸ N/A⁸
Sharding Commands unshardCollection N/A⁸ N/A⁸ N/A⁸ N/A⁸
System Events Auditing Commands logApplicationMessage ❌ No ❌ No ❌ No ❌ No
User Management Commands createUser βœ… Yes βœ… Yes βœ… Yes βœ… Yes
User Management Commands dropUser βœ… Yes βœ… Yes βœ… Yes βœ… Yes
User Management Commands usersInfo βœ… Yes βœ… Yes βœ… Yes βœ… Yes
User Management Commands dropAllUsersFromDatabase N/A⁷ N/A⁷ N/A⁷ N/A⁷
User Management Commands grantRolesToUser N/A⁷ N/A⁷ N/A⁷ N/A⁷
User Management Commands revokeRolesFromUser N/A⁷ N/A⁷ N/A⁷ N/A⁷
User Management Commands updateUser N/A⁷ N/A⁷ N/A⁷ N/A⁷

Note

  1. getClusterParameter isn't supported in v5.0.
  2. Azure fully manages Azure DocumentDB, a PaaS service, for commands like dropConnections, fsync, logRotate, etc.
  3. Deprecated in MongoDB version 5.0.
  4. Deprecated in MongoDB version 5.1.
  5. Being a PaaS service, the database engine manages query plan caching for you.
  6. Azure manages replication, removing the necessity to replicate manually.
  7. As a fully managed service, this capability is provided through Microsoft Entra ID.
  8. As a PaaS offering, Azure handles shard management and rebalancing. You only need to shard your collections. Azure takes care of the rest.

Index types

Azure DocumentDB supports the following index types:

Index Description Supported
Single Field Index Indexes a single field for faster lookups. βœ… Yes
Compound Index Indexes multiple fields in one index. βœ… Yes
Multikey Index Indexes array fields by indexing each element. βœ… Yes
Text Index Supports text search on string fields. βœ… Yes
Wildcard Index Dynamically indexes all or selected fields. βœ… Yes
Geospatial Index Supports spatial queries on GeoJSON data. βœ… Yes
Hashed Index Indexes hashed field values, often for sharding. βœ… Yes
Vector Index (only in DocumentDB) Enables similarity search on vector data. βœ… Yes, with vector search

Note

Creating a unique index obtains an exclusive lock on the collection for the entire duration of the build process. These indexes block read and write operations on the collection until the operation is completed.

Index properties

Azure DocumentDB supports the following index properties:

Index Property Description Supported
time-to-live (TTL) Automatically deletes documents after a specified time-to-live period. βœ… Yes
Unique Ensures that all values in the indexed field are unique. βœ… Yes
Partial Indexes only documents that match a specified filter condition. βœ… Yes
Case Insensitive Supports case-insensitive indexing for string fields. βœ… Yes
Sparse Indexes only documents that contain the indexed field. βœ… Yes
Background Allows the index to be created in the background without blocking operations. βœ… Yes