Azure Cosmos DB for MongoDB (3.6 version) supported features and syntax (2024)

  • Article

APPLIES TO:Azure Cosmos DB for MongoDB (3.6 version) supported features and syntax (1)MongoDB

Azure Cosmos DB is Microsoft's globally distributed multi-model database service. You can communicate with the Azure Cosmos DB for MongoDB using any of the open-source MongoDB client drivers. The Azure Cosmos DB for MongoDB enables the use of existing client drivers by adhering to the MongoDB wire protocol.

By using the Azure Cosmos DB for MongoDB, you can enjoy the benefits of the MongoDB you're used to, with all of the enterprise capabilities that Azure Cosmos DB provides: global distribution, automatic sharding, availability and latency guarantees, encryption at rest, backups, and much more.

Note

Version 3.6 of the Azure Cosmos DB for MongoDB has no current plans for end-of-life (EOL). The minimum notice for a future EOL is three years.

Protocol Support

The Azure Cosmos DB for MongoDB is compatible with MongoDB server version 3.6 by default for new accounts. The supported operators and any limitations or exceptions are listed below. Any client driver that understands these protocols should be able to connect to Azure Cosmos DB for MongoDB. When you create Azure Cosmos DB API for MongoDB accounts, the 3.6 version of account has the endpoint in the format *.mongo.cosmos.azure.com whereas the 3.2 version of account has the endpoint in the format *.documents.azure.com.

Query language support

Azure Cosmos DB for MongoDB provides comprehensive support for MongoDB query language constructs. The following sections show the detailed list of server operations, operators, stages, commands, and options currently supported by Azure Cosmos DB.

Note

This article only lists the supported server commands and excludes client-side wrapper functions. Client-side wrapper functions such as deleteMany() and updateMany() internally utilize the delete() and update() server commands. Functions utilizing supported server commands are compatible with Azure Cosmos DB for MongoDB.

Database commands

Azure Cosmos DB for MongoDB supports the following database commands:

Query and write operation commands

CommandSupported
change streamsYes
deleteYes
evalNo
findYes
findAndModifyYes
getLastErrorYes
getMoreYes
getPrevErrorNo
insertYes
parallelCollectionScanNo
resetErrorNo
updateYes

Authentication commands

CommandSupported
authenticateYes
getnonceYes
logoutYes

Administration commands

CommandSupported
cloneCollectionAsCappedNo
collModNo
connectionStatusNo
convertToCappedNo
copydbNo
createYes
createIndexesYes
currentOpYes
dropYes
dropDatabaseYes
dropIndexesYes
filemd5Yes
killCursorsYes
killOpNo
listCollectionsYes
listDatabasesYes
listIndexesYes
reIndexYes
renameCollectionNo

Diagnostics commands

CommandSupported
buildInfoYes
collStatsYes
connPoolStatsNo
connectionStatusNo
dataSizeNo
dbHashNo
dbStatsYes
explainYes
featuresNo
hostInfoYes
listDatabasesYes
listCommandsNo
profilerNo
serverStatusNo
topNo
whatsmyuriYes

Aggregation pipeline

Aggregation commands

CommandSupported
aggregateYes
countYes
distinctYes
mapReduceNo

Aggregation stages

CommandSupported
addFieldsYes
bucketNo
bucketAutoNo
changeStreamYes
collStatsNo
countYes
currentOpNo
facetYes
geoNearYes
graphLookupYes
groupYes
indexStatsNo
limitYes
listLocalSessionsNo
listSessionsNo
lookupPartial
matchYes
outYes
projectYes
redactYes
replaceRootYes
replaceWithNo
sampleYes
skipYes
sortYes
sortByCountYes
unwindYes

Note

$lookup does not yet support the uncorrelated subqueries feature introduced in server version 3.6. You will receive an error with a message containing let is not supported if you attempt to use the $lookup operator with let and pipeline fields.

Boolean expressions

CommandSupported
andYes
notYes
orYes

Set expressions

CommandSupported
setEqualsYes
setIntersectionYes
setUnionYes
setDifferenceYes
setIsSubsetYes
anyElementTrueYes
allElementsTrueYes

Comparison expressions

Note

The API for MongoDB does not support comparison expressions with an array literal in the query.

CommandSupported
cmpYes
eqYes
gtYes
gteYes
ltYes
lteYes
neYes
inYes
ninYes

Arithmetic expressions

CommandSupported
absYes
addYes
ceilYes
divideYes
expYes
floorYes
lnYes
logYes
log10Yes
modYes
multiplyYes
powYes
sqrtYes
subtractYes
truncYes

String expressions

CommandSupported
concatYes
indexOfBytesYes
indexOfCPYes
splitYes
strLenBytesYes
strLenCPYes
strcasecmpYes
substrYes
substrBytesYes
substrCPYes
toLowerYes
toUpperYes

Text search operator

CommandSupported
metaNo

Array expressions

CommandSupported
arrayElemAtYes
arrayToObjectYes
concatArraysYes
filterYes
indexOfArrayYes
isArrayYes
objectToArrayYes
rangeYes
reverseArrayYes
reduceYes
sizeYes
sliceYes
zipYes
inYes

Variable operators

CommandSupported
mapYes
letYes

System variables

CommandSupported
$$CURRENTYes
$$DESCENDYes
$$KEEPYes
$$PRUNEYes
$$REMOVEYes
$$ROOTYes

Literal operator

CommandSupported
literalYes

Date expressions

CommandSupported
dayOfYearYes
dayOfMonthYes
dayOfWeekYes
yearYes
monthYes
weekYes
hourYes
minuteYes
secondYes
millisecondYes
dateToStringYes
isoDayOfWeekYes
isoWeekYes
dateFromPartsYes
dateToPartsYes
dateFromStringYes
isoWeekYearYes

Conditional expressions

CommandSupported
condYes
ifNullYes
switchYes

Data type operator

CommandSupported
typeYes

Accumulator expressions

CommandSupported
sumYes
avgYes
firstYes
lastYes
maxYes
minYes
pushYes
addToSetYes
stdDevPopYes
stdDevSampYes

Merge operator

CommandSupported
mergeObjectsYes

Data types

CommandSupported
DoubleYes
StringYes
ObjectYes
ArrayYes
Binary DataYes
ObjectIdYes
BooleanYes
DateYes
NullYes
32-bit Integer (int)Yes
TimestampYes
64-bit Integer (long)Yes
MinKeyYes
MaxKeyYes
Decimal128Yes
Regular ExpressionYes
JavaScriptYes
JavaScript (with scope)Yes
UndefinedYes

Indexes and index properties

Indexes

CommandSupported
Single Field IndexYes
Compound IndexYes
Multikey IndexYes
Text IndexNo
2dsphereYes
2d IndexNo
Hashed IndexNo

Index properties

CommandSupported
TTLYes
UniqueYes
PartialNo
Case InsensitiveNo
SparseNo
BackgroundYes

Operators

Logical operators

CommandSupported
orYes
andYes
notYes
norYes

Element operators

CommandSupported
existsYes
typeYes

Evaluation query operators

CommandSupported
exprYes
jsonSchemaNo
modYes
regexYes
textNo (Not supported. Use $regex instead.)
whereNo

In the $regex queries, left-anchored expressions allow index search. However, using 'i' modifier (case-insensitivity) and 'm' modifier (multiline) causes the collection scan in all expressions.

When there's a need to include $ or |, it's best to create two (or more) regex queries. For example, given the following original query: find({x:{$regex: /^abc$/}), it has to be modified as follows:

find({x:{$regex: /^abc/, x:{$regex:/^abc$/}})

The first part will use the index to restrict the search to those documents beginning with ^abc and the second part will match the exact entries. The bar operator | acts as an "or" function - the query find({x:{$regex: /^abc |^def/}) matches the documents in which field x has values that begin with "abc" or "def". To utilize the index, it's recommended to break the query into two different queries joined by the $or operator: find( {$or : [{x: $regex: /^abc/}, {$regex: /^def/}] }).

Array operators

CommandSupported
allYes
elemMatchYes
sizeYes

Comment operator

CommandSupported
commentYes

Projection operators

CommandSupported
elemMatchYes
metaNo
sliceYes

Update operators

Field update operators

CommandSupported
incYes
mulYes
renameYes
setOnInsertYes
setYes
unsetYes
minYes
maxYes
currentDateYes

Array update operators

CommandSupported
$Yes
$[]Yes
$[\<identifier\>]Yes
addToSetYes
popYes
pullAllYes
pullYes
pushYes
pushAllYes

Update modifiers

CommandSupported
eachYes
sliceYes
sortYes
positionYes

Bitwise update operator

CommandSupported
bitYes
bitsAllSetNo
bitsAnySetNo
bitsAllClearNo
bitsAnyClearNo

Geospatial operators

OperatorSupported
$geoWithinYes
$geoIntersectsYes
$nearYes
$nearSphereYes
$geometryYes
$minDistanceYes
$maxDistanceYes
$centerNo
$centerSphereNo
$boxNo
$polygonNo

Sort operations

When you use the findOneAndUpdate operation, sort operations on a single field are supported, but sort operations on multiple fields aren't supported.

Indexing

The API for MongoDB supports various indexes to enable sorting on multiple fields, improve query performance, and enforce uniqueness.

GridFS

Azure Cosmos DB supports GridFS through any GridFS-compatible MongoDB driver.

Replication

Azure Cosmos DB supports automatic, native replication at the lowest layers. This logic is extended out to achieve low-latency, global replication as well. Azure Cosmos DB doesn't support manual replication commands.

Retryable Writes

Azure Cosmos DB doesn't yet support retryable writes. Client drivers must add retryWrites=false to their connection string.

Sharding

Azure Cosmos DB supports automatic, server-side sharding. It manages shard creation, placement, and balancing automatically. Azure Cosmos DB doesn't support manual sharding commands, which means you don't have to invoke commands such as addShard, balancerStart, moveChunk etc. You only need to specify the shard key while creating the containers or querying the data.

Sessions

Azure Cosmos DB doesn't yet support server-side sessions commands.

Time-to-live (TTL)

Azure Cosmos DB supports a time-to-live (TTL) based on the timestamp of the document. TTL can be enabled for collections from the Azure portal.

User and role management

Azure Cosmos DB doesn't yet support users and roles. However, it supports Azure role-based access control (Azure RBAC) and read-write and read-only passwords or keys that can be obtained through the connection string pane in the Azure portal.

Write Concern

Some applications rely on a Write Concern, which specifies the number of responses required during a write operation. Due to how Azure Cosmos DB handles replication, all writes are automatically majority quorum by default when using strong consistency. Any write concern specified by the client code is ignored. To learn more, see Using consistency levels to maximize availability and performance article.

Next steps

  • For further information check Mongo 3.6 version features
  • Learn how to use Studio 3T with Azure Cosmos DB for MongoDB.
  • Learn how to use Robo 3T with Azure Cosmos DB for MongoDB.
  • Explore MongoDB samples with Azure Cosmos DB for MongoDB.
Azure Cosmos DB for MongoDB (3.6 version) supported features and syntax (2024)
Top Articles
The Shocking Autopsy Findings: Uncovering The Truth Of King Von's Death
Tragic Autopsy Results: Unveiling The Circ*mstances Of King Von's Demise
St Thomas Usvi Craigslist
Top 11 Best Bloxburg House Ideas in Roblox - NeuralGamer
Jesus Calling December 1 2022
A Complete Guide To Major Scales
Dr Klabzuba Okc
How To Get Free Credits On Smartjailmail
Music Archives | Hotel Grand Bach - Hotel GrandBach
Mikayla Campino Video Twitter: Unveiling the Viral Sensation and Its Impact on Social Media
Premier Boating Center Conroe
Student Rating Of Teaching Umn
The Connecticut Daily Lottery Hub
Readyset Ochsner.org
Animal Eye Clinic Huntersville Nc
Adam4Adam Discount Codes
Carson Municipal Code
Jbf Wichita Falls
Aris Rachevsky Harvard
Huntersville Town Billboards
bode - Bode frequency response of dynamic system
Transactions (zipForm Edition) | Lone Wolf | Real Estate Forms Software
Shiftselect Carolinas
Johnnie Walker Double Black Costco
Tu Pulga Online Utah
Winco Employee Handbook 2022
Red8 Data Entry Job
Roane County Arrests Today
Https E22 Ultipro Com Login Aspx
European Wax Center Toms River Reviews
Coindraw App
Annapolis Md Craigslist
Weather Underground Durham
A Man Called Otto Showtimes Near Carolina Mall Cinema
Ts Modesto
Ice Dodo Unblocked 76
3473372961
Current Time In Maryland
Mkvcinemas Movies Free Download
Chattanooga Booking Report
How Much Is Mink V3
Build-A-Team: Putting together the best Cathedral basketball team
How are you feeling? Vocabulary & expressions to answer this common question!
Complete List of Orange County Cities + Map (2024) — Orange County Insiders | Tips for locals & visitors
Craigslist Pets Plattsburgh Ny
Espn Top 300 Non Ppr
Costner-Maloy Funeral Home Obituaries
Okta Hendrick Login
303-615-0055
Grandma's Portuguese Sweet Bread Recipe Made from Scratch
Bumgarner Funeral Home Troy Nc Obituaries
Turning Obsidian into My Perfect Writing App – The Sweet Setup
Latest Posts
Article information

Author: Sen. Ignacio Ratke

Last Updated:

Views: 5497

Rating: 4.6 / 5 (56 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Sen. Ignacio Ratke

Birthday: 1999-05-27

Address: Apt. 171 8116 Bailey Via, Roberthaven, GA 58289

Phone: +2585395768220

Job: Lead Liaison

Hobby: Lockpicking, LARPing, Lego building, Lapidary, Macrame, Book restoration, Bodybuilding

Introduction: My name is Sen. Ignacio Ratke, I am a adventurous, zealous, outstanding, agreeable, precious, excited, gifted person who loves writing and wants to share my knowledge and understanding with you.