Supported MongoDB APIs, Operations, and Data Types

Amazon DocumentDB (with MongoDB compatibility) is a fast, scalable, highly-available, and fully managed document database service that supports MongoDB workloads. Amazon DocumentDB is compatible with the MongoDB 3.6 and 4.0 APIs. This section lists the supported functionality. For functional differences between Amazon DocumentDB and MongoDB, please see Functional Differences: Amazon DocumentDB and MongoDB.

MongoDB commands and operators that are internal-only or not applicable to a fully-managed service are not supported and are not included in the list of supported functionality.

We have added over 50+ additional capabilities since launch, and will continue to work backwards from our customers to deliver the capabilities that they need. For information on the most recent launches, see Amazon DocumentDB Announcements.

If there is a feature that isn’t supported that you’d like us to build, let us know by sending an email with your accountID, the requested features, and use case to the Amazon DocumentDB service team.

Database Commands

Administrative Commands

Command 3.6 4.0
Capped Collections No No
cloneCollectionAsCapped No No
collMod Partial Partial
collMod: expireAfterSeconds Yes Yes
convertToCapped No No
copydb No No
create Yes Yes
createView No No
createIndexes Yes Yes
currentOp Yes Yes
drop Yes Yes
dropDatabase Yes Yes
dropIndexes Yes Yes
filemd5 No No
killCursors Yes Yes
killOp Yes Yes
listCollections Yes Yes
listDatabases Yes Yes
listIndexes Yes Yes
reIndex No No
renameCollection No No

Aggregation

Command 3.6 4.0
aggregate Yes Yes
count Yes Yes
distinct Yes Yes
mapReduce No No

Authentication

Command 3.6 4.0
authenticate Yes Yes
logout Yes Yes

Diagnostic Commands

Command 3.6 4.0
buildInfo Yes Yes
collStats Yes Yes
connPoolStats No No
connectionStatus Yes Yes
dataSize Yes Yes
dbHash No No
dbStats Yes Yes
explain Yes Yes
explain: executionStats Yes Yes
features No No
hostInfo Yes Yes
listCommands Yes Yes
profiler Yes Yes
serverStatus Yes Yes
top Yes Yes

Query and Write Operations

Command 3.6 4.0
delete Yes Yes
find Yes Yes
findAndModify Yes Yes
getLastError No No
getMore Yes Yes
getPrevError No No
insert Yes Yes
parallelCollectionScan No No
resetError No No
update Yes Yes
Change streams Yes Yes
GridFS No

Role Management Commands

Command 3.6 4.0
createRole No No
dropRole No No
dropAllRolesFromDatabase No No
grantRolesToRole No No
revokePrivilegesFromRole No No
revokeRolesFromRole No No
updateRole No No
rolesInfo No No

Sessions Commands

Command 3.6 4.0
abortTransaction No Yes
commitTransaction No Yes
endSessions No Yes
killAllSessions No Yes
killAllSessionsByPattern No No
killSessions No Yes
refreshSessions No No
startSession No Yes

User Management

Command 3.6 4.0
createUser Yes Yes
dropAllUsersFromDatabase Yes Yes
dropUser Yes Yes
grantRolesToUser Yes Yes
revokeRolesFromUser Yes Yes
updateUser Yes Yes
userInfo Yes Yes

Query and Projection Operators

Array Operators

Command 3.6 4.0
$all Yes Yes
$elemMatch Yes Yes
$size Yes Yes

Bitwise Operators

Command 3.6 4.0
$bitsAllSet Yes Yes
$bitsAnySet Yes Yes
$bitsAllClear Yes Yes
$bitsAnyClear Yes Yes

Comment Operator

Command 3.6 4.0
$comment Yes Yes

Comparison Operators

Command 3.6 4.0
$eq Yes Yes
$gt Yes Yes
$gte Yes Yes
$lt Yes Yes
$lte Yes Yes
$ne Yes Yes
$in Yes Yes
$nin Yes Yes

Element Operators

Command 3.6 4.0
$exists Yes Yes
$type Yes Yes

Evaluation Query Operators

Command 3.6 4.0
$expr No No
$jsonSchema No No
$mod Yes Yes
$regex Yes Yes
$text No No
$where No No

Logical Operators

Command 3.6 4.0
$or Yes Yes
$and Yes Yes
$not Yes Yes
$nor Yes Yes

Projection Operators

Command 3.6 4.0
$ Yes Yes
$elemMatch Yes Yes
$meta No No
$slice Yes Yes

Update Operators

Array Operators

Command 3.6 4.0
$ Yes Yes
$[] Yes Yes
$[] Yes Yes
$addToSet Yes Yes
$pop Yes Yes
$pullAll Yes Yes
$pull Yes Yes
$push Yes Yes

Bitwise Operators

Command 3.6 4.0
$bit Yes Yes

Field Operators

Operator 3.6 4.0
$inc Yes Yes
$mul Yes Yes
$rename Yes Yes
$setOnInsert Yes Yes
$set Yes Yes
$unset Yes Yes
$min Yes Yes
$max Yes Yes
$currentDate Yes Yes

Update Modifiers

Operator 3.6 4.0
$each Yes Yes
$slice Yes Yes
$sort Yes Yes
$position Yes Yes

Geospatial

Geometry Specifiers

Query Selectors 3.6 4.0
$box No No
$center No No
$centerSphere No No
$nearSphere No No
$geometry No No
$maxDistance No No
$minDistance No No
$polygon No No
$uniqueDocs No No

Query Selectors

Command 3.6 4.0
$geoIntersects No No
$geoWithin No No
$near No No
$nearSphere No No
$polygon No No
$uniqueDocs No No

Cursor Methods

Command 3.6 4.0
cursor.batchSize() Yes Yes
cursor.close() Yes Yes
cursor.isClosed() Yes Yes
cursor.collation() No No
cursor.comment() Yes Yes
cursor.count() Yes Yes
cursor.explain() Yes Yes
cursor.forEach() Yes Yes
cursor.hasNext() Yes Yes
cursor.hint() Yes Yes
cursor.isExhausted() Yes Yes
cursor.itcount() Yes Yes
cursor.limit() Yes Yes
cursor.map() Yes Yes
cursor.maxScan() Yes Yes
cursor.maxTimeMS() Yes Yes
cursor.max() No No
cursor.min() No No
cursor.next() Yes Yes
cursor.noCursorTimeout() No No
cursor.objsLeftInBatch() Yes Yes
cursor.pretty() Yes Yes
cursor.readConcern() Yes Yes
cursor.readPref() Yes Yes
cursor.returnKey() No No
cursor.showRecordId() No No
cursor.size() Yes Yes
cursor.skip() Yes Yes
cursor.sort() Yes Yes
cursor.tailable() No No
cursor.toArray() Yes Yes

Aggregation Pipeline Operators

Accumulator Expressions

Expression 3.6 4.0
$sum Yes Yes
$avg Yes Yes
$first Yes Yes
$last Yes Yes
$max Yes Yes
$min Yes Yes
$push Yes Yes
$addToSet Yes Yes
$stdDevPop No No
$stdDevSamp No No

Arithmetic Operators

Command 3.6 4.0
$abs Yes Yes
$add Yes Yes
$ceil No No
$divide Yes Yes
$exp No No
$floor No No
$ln No No
$log No No
$log10 No No
$mod Yes Yes
$multiply Yes Yes
$pow No No
$sqrt No No
$subtract Yes Yes
$trunc No No

Array Operators

Command 3.6 4.0
$arrayElemAt Yes Yes
$arrayToObject Yes Yes
$concatArrays Yes Yes
$filter Yes Yes
$indexOfArray No No
$isArray Yes Yes
$objectToArray Yes Yes
$range Yes Yes
$reverseArray No No
$reduce No No
$size Yes Yes
$slice Yes Yes
$zip No No
$in Yes Yes

Boolean Operators

Command 3.6 4.0
$and Yes Yes
$or Yes Yes
$not Yes Yes

Comparison Operators

Command 3.6 4.0
$cmp Yes Yes
$eq Yes Yes
$gt Yes Yes
$gte Yes Yes
$lt Yes Yes
$lte Yes Yes
$ne Yes Yes

Conditional Expression Operators

Command 3.6 4.0
$cond Yes Yes
$ifNull Yes Yes
$switch No No

Data Type Operator

Command 3.6 4.0
$type No No

Date Operators

Command 3.6 4.0
$dayOfYear Yes Yes
$dayOfMonth Yes Yes
$dayOfWeek Yes Yes
$year Yes Yes
$month Yes Yes
$week Yes Yes
$hour Yes Yes
$minute Yes Yes
$second Yes Yes
$millisecond Yes Yes
$dateToString Yes Yes
$isoDayOfWeek Yes Yes
$isoWeek Yes Yes
$dateFromParts No No
$dateToParts No No
$dateFromString Yes Yes
$isoWeekYear Yes Yes

Literal Operator

Command 3.6 4.0
$literal No No

Merge Operator

Command 3.6 4.0
$mergeObjects No No

Natural Operator

Command 3.6 4.0
$natural No No

Set Operators

Command 3.6 4.0
$setEquals Yes Yes
$setIntersection Yes Yes
$setUnion Yes Yes
$setDifference No No
$setIsSubset Yes Yes
$anyElementTrue No No
$allElementsTrue No No

Stage Operators

Command 3.6 4.0
$collStats No No
$project Yes Yes
$match Yes Yes
$redact Yes Yes
$limit Yes Yes
$skip Yes Yes
$unwind Yes Yes
$group Yes Yes
$sample Yes Yes
$sort Yes Yes
$geoNear No No
$lookup Yes Yes
$out Yes Yes
$indexStats Yes Yes
$facet No No
$bucket No No
$bucketAuto No No
$sortByCount No No
$addFields Yes No
$replaceRoot Yes Yes
$count Yes Yes
$currentOp Yes Yes
$listLocalSessions No No
$listSessions No No
$graphLookup No No

String Operators

Command 3.6 4.0
$concat Yes Yes
$indexOfBytes Yes Yes
$indexOfCP Yes Yes
$ltrim No No
$rtrim No No
$split Yes Yes
$strcasecmp Yes Yes
$strLenBytes Yes Yes
$strLenCP Yes Yes
$substr Yes Yes
$substrBytes Yes Yes
$substrCP Yes Yes
$toLower Yes Yes
$toUpper Yes Yes
$trim No No

System Variables

Command 3.6 4.0
$$CURRENT No No
$$DESCEND Yes Yes
$$KEEP Yes Yes
$$PRUNE Yes Yes
$$REMOVE No No
$$ROOT No No

Text Search Operator

Command 3.6 4.0
$meta No No

Type Conversion Operators

Command 3.6 4.0
$convert No No
$toBool No No
$toDate No No
$toDecimal No No
$toDouble No No
$toInt No No
$toLong No No
$toObjectId No No
$toString No No

Variable Operators

Command 3.6 4.0
$map No No
$let No No

Data Types

Command 3.6 4.0
Double Yes Yes
String Yes Yes
Object Yes Yes
Array Yes Yes
Binary Data Yes Yes
ObjectId Yes Yes
Boolean Yes Yes
Date Yes Yes
Null Yes Yes
32-bit Integer (int) Yes Yes
Timestamp Yes Yes
64-bit Integer (long) Yes Yes
MinKey Yes Yes
MaxKey Yes Yes
Decimal128 No No
Regular Expression No No
JavaScript No No
JavaScript (with scope) No No
Undefined No No
Symbol No No
DBPointer No

Indexes and Index Properties

Indexes

Command 3.6 4.0
Single Field Index Yes Yes
Compound Index Yes Yes
Multikey Index Yes Yes
Text Index No No
2dsphere No No
2d Index No No
Hashed Index No No

Index Properties

Command 3.6 4.0
TTL Yes Yes
Unique Yes Yes
Partial No No
Case Insensitive No No
Sparse Yes Yes
Background Yes Yes