- Supported MongoDB APIs, Operations, and Data Types
- Database Commands
- Query and Projection Operators
- Update Operators
- Geospatial
- Cursor Methods
- Aggregation Pipeline Operators
- Accumulator Expressions
- Arithmetic Operators
- Array Operators
- Boolean Operators
- Comparison Operators
- Conditional Expression Operators
- Data Type Operator
- Date Operators
- Literal Operator
- Merge Operator
- Natural Operator
- Set Operators
- Stage Operators
- String Operators
- System Variables
- Text Search Operator
- Type Conversion Operators
- Variable Operators
- Data Types
- Indexes and Index Properties
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 | ||
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 | ||
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 |
$[<identifier>] | 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 |