Supported MongoDB APIs, operations, and data types in Amazon DocumentDB (original) (raw)

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, 4.0, 5.0, and 8.0 APIs. This section lists the supported functionality. For support using MongoDB APIs and drivers, consult the MongoDB Community Forums. For support using the Amazon DocumentDB service, contact the appropriate AWS support team. For functional differences between Amazon DocumentDB and MongoDB, 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.

Topics

Database commands

Topics

Administrative Commands

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

* The type key in the filter option is not supported.

Aggregation

Command 3.6 4.0 5.0 8.0 Elastic cluster
aggregate Yes Yes Yes Yes Yes
count Yes Yes Yes Yes Yes
distinct Yes Yes Yes Yes Yes
mapReduce No No No Yes No

Authentication

Command 3.6 4.0 5.0 8.0 Elastic cluster
authenticate Yes Yes Yes Yes Yes
logout Yes Yes Yes Yes Yes

Diagnostic commands

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

Query and write operations

Command 3.6 4.0 5.0 8.0 Elastic cluster
Change streams Yes Yes Yes Yes No
delete Yes Yes Yes Yes Yes
find Yes Yes Yes Yes Yes
findAndModify Yes Yes Yes Yes Yes
getLastError No No No No No
getMore Yes Yes Yes Yes Yes
getPrevError No No No No No
GridFS Yes Yes Yes Yes No
insert Yes Yes Yes Yes Yes
parallelCollectionScan No No No No No
resetError No No No No No
update Yes Yes Yes Yes Yes
ReplaceOne Yes Yes Yes Yes Yes

Role management commands

Command 3.6 4.0 5.0 8.0 Elastic cluster
createRole Yes Yes Yes Yes No
dropAllRolesFromDatabase Yes Yes Yes Yes No
dropRole Yes Yes Yes Yes No
grantRolesToRole Yes Yes Yes Yes No
revokeRolesFromRole Yes Yes Yes Yes No
revokePrivilegesFromRole Yes Yes Yes Yes No
rolesInfo Yes Yes Yes Yes No
updateRole Yes Yes Yes Yes No

Sessions commands

Command 3.6 4.0 5.0 8.0 Elastic cluster
abortTransaction No Yes Yes Yes No
commitTransaction No Yes Yes Yes No
endSessions No No No No No
killAllSessions No Yes Yes Yes No
killAllSessionsByPattern No No No No No
killSessions No Yes Yes Yes No
refreshSessions No No No No No
startSession No Yes Yes Yes No

User management

Command 3.6 4.0 5.0 8.0 Elastic cluster
createUser Yes Yes Yes Yes Yes
dropAllUsersFromDatabase Yes Yes Yes Yes Yes
dropUser Yes Yes Yes Yes Yes
grantRolesToUser Yes Yes Yes Yes Yes
revokeRolesFromUser Yes Yes Yes Yes Yes
updateUser Yes Yes Yes Yes Yes
usersInfo Yes Yes Yes Yes Yes

Sharding commands

Command Elastic cluster
abortReshardCollection No
addShard No
addShardToZone No
balancerCollectionStatus No
balancerStart No
balancerStatus No
balancerStop No
checkShardingIndex No
clearJumboFlag No
cleanupOrphaned No
cleanupReshardCollection No
commitReshardCollection No
enableSharding Yes
flushRouterConfig No
getShardMap No
getShardVersion No
isdbgrid No
listShards No
medianKey No
moveChunk No
movePrimary No
mergeChunks No
refineCollectionShardKey No
removeShard No
removeShardFromZone No
reshardCollection No
setAllowMigrations No
setShardVersion No
shardCollection Yes
shardingState No
split No
splitVector No
unsetSharding No
updateZoneKeyRange No

Query and projection operators

Topics

Array Operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$all Yes Yes Yes Yes Yes
$elemMatch Yes Yes Yes Yes Yes
$size Yes Yes Yes Yes Yes

Bitwise operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$comment Yes Yes Yes Yes Yes

Comparison operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$eq Yes Yes Yes Yes Yes
$gt Yes Yes Yes Yes Yes
$gte Yes Yes Yes Yes Yes
$in Yes Yes Yes Yes Yes
$lt Yes Yes Yes Yes Yes
$lte Yes Yes Yes Yes Yes
$ne Yes Yes Yes Yes Yes
$nin Yes Yes Yes Yes Yes

Element operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$exists Yes Yes Yes Yes Yes
$type Yes Yes Yes Yes Yes

Evaluation query operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$expr No Yes Yes Yes No
$jsonSchema No Yes Yes Yes No
$mod Yes Yes Yes Yes Yes
$regex Yes Yes Yes Yes Yes
$text No No Yes Yes No
$where No No No No No

Logical operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$and Yes Yes Yes Yes Yes
$nor Yes Yes Yes Yes Yes
$not Yes Yes Yes Yes Yes
$or Yes Yes Yes Yes Yes

Projection operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$ Yes Yes Yes Yes Yes
$elemMatch Yes Yes Yes Yes Yes
$meta No No Yes Yes No
$slice Yes Yes Yes Yes Yes

Update operators

Topics

Array operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$ Yes Yes Yes Yes Yes
$[] Yes Yes Yes Yes Yes
$[] Yes Yes Yes Yes Yes
$addToSet Yes Yes Yes Yes Yes
$pop Yes Yes Yes Yes Yes
$pullAll Yes Yes Yes Yes Yes
$pull Yes Yes Yes Yes Yes
$push Yes Yes Yes Yes Yes

Bitwise operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$bit Yes Yes Yes Yes Yes

Field operators

Operator 3.6 4.0 5.0 8.0 Elastic cluster
$currentDate Yes Yes Yes Yes Yes
$inc Yes Yes Yes Yes Yes
$max Yes Yes Yes Yes Yes
$min Yes Yes Yes Yes Yes
$mul Yes Yes Yes Yes Yes
$rename Yes Yes Yes Yes Yes
$set Yes Yes Yes Yes Yes
$setOnInsert Yes Yes Yes Yes Yes
$unset Yes Yes Yes Yes Yes

Update modifiers

Operator 3.6 4.0 5.0 8.0 Elastic cluster
$each Yes Yes Yes Yes Yes
$position Yes Yes Yes Yes Yes
$slice Yes Yes Yes Yes Yes
$sort Yes Yes Yes Yes Yes

Geospatial

Geometry specifiers

Query Selectors 3.6 4.0 5.0 8.0 Elastic cluster
$box No No No No No
$center No No No No No
$centerSphere No No No No No
$geometry Yes Yes Yes Yes Yes
$maxDistance Yes Yes Yes Yes Yes
$minDistance Yes Yes Yes Yes Yes
$nearSphere Yes Yes Yes Yes Yes
$polygon No No No No No
$uniqueDocs No No No No No

Query selectors

Command 3.6 4.0 5.0 8.0 Elastic cluster
$geoIntersects Yes Yes Yes Yes Yes
$geoWithin Yes Yes Yes Yes Yes
$near Yes Yes Yes Yes Yes
$nearSphere Yes Yes Yes Yes Yes
$polygon No No No No No
$uniqueDocs No No No No No

Cursor methods

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

* Index hint is supported with index expressions. For example, db.foo.find().hint({x:1}).

Aggregation pipeline operators

Topics

Accumulator expressions

Expression 3.6 4.0 5.0 8.0 Elastic cluster
$accumulator - - No No No
$addToSet Yes Yes Yes Yes Yes
$avg Yes Yes Yes Yes Yes
$count - - No No No
$covariancePop No No No No No
$covarianceSamp No No No No No
$denseRank No No No No No
$derivative No No No No No
$documentNumber No No No No No
$expMovingAvg No No No No No
$first Yes Yes Yes Yes Yes
$integral No No No No No
$last Yes Yes Yes Yes Yes
$max Yes Yes Yes Yes Yes
$min Yes Yes Yes Yes Yes
$push Yes Yes Yes Yes Yes
$rank No No No No No
$shift No No No No No
$stdDevPop No No No No No
$stdDevSamp No No No No No
$sum Yes Yes Yes Yes Yes

Arithmetic operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$abs Yes Yes Yes Yes Yes
$add Yes Yes Yes Yes Yes
$ceil No Yes Yes Yes Yes
$divide Yes Yes Yes Yes Yes
$exp No Yes Yes Yes Yes
$floor No Yes Yes Yes Yes
$ln No Yes Yes Yes Yes
$log No Yes Yes Yes Yes
$log10 No Yes Yes Yes Yes
$mod Yes Yes Yes Yes Yes
$multiply Yes Yes Yes Yes Yes
$pow No No Yes (5.0.1+) Yes No
$round - - No No No
$sqrt No Yes Yes Yes Yes
$subtract Yes Yes Yes Yes Yes
$trunc No No No No No

Array operators

Boolean operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$and Yes Yes Yes Yes Yes
$not Yes Yes Yes Yes Yes
$or Yes Yes Yes Yes Yes

Comparison operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$cmp Yes Yes Yes Yes Yes
$eq Yes Yes Yes Yes Yes
$gt Yes Yes Yes Yes Yes
$gte Yes Yes Yes Yes Yes
$lt Yes Yes Yes Yes Yes
$lte Yes Yes Yes Yes Yes
$ne Yes Yes Yes Yes Yes

Conditional expression operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$cond Yes Yes Yes Yes Yes
$ifNull Yes Yes Yes Yes Yes
$switch No Yes Yes Yes No

Data type operator

Command 3.6 4.0 5.0 8.0 Elastic cluster
$type Yes Yes Yes Yes Yes

Data size operator

Command 3.6 4.0 5.0 8.0 Elastic cluster
$binarySize - - No No No
$bsonSize - - No No No

Date operators

Literal operator

Command 3.6 4.0 5.0 8.0 Elastic cluster
$literal Yes Yes Yes Yes Yes

Merge operator

Command 3.6 4.0 5.0 8.0 Elastic cluster
$mergeObjects Yes Yes Yes Yes Yes

Natural operator

Command 3.6 4.0 5.0 8.0 Elastic cluster
$natural Yes Yes Yes Yes Yes

Set operators

Stage operators

String operators

System variables

Command 3.6 4.0 5.0 8.0 Elastic cluster
CURRENT No No No No No
$$DESCEND Yes Yes Yes Yes Yes
$$KEEP Yes Yes Yes Yes Yes
$$PRUNE Yes Yes Yes Yes Yes
REMOVE No No No No No
$ROOT Yes Yes Yes Yes Yes

Text search operator

Command 3.6 4.0 5.0 8.0 Elastic cluster
$meta No No Yes Yes No
$search No No Yes Yes No

Type conversion operators

Variable operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$let Yes Yes Yes Yes Yes
$map Yes Yes Yes Yes Yes

Miscellaneous operators

Command 3.6 4.0 5.0 8.0 Elastic cluster
$getField - - No No No
$rand - - Yes (5.0.1+) Yes No
$sampleRate - - No No No

Data types

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

Indexes and index properties

Indexes

Command 3.6 4.0 5.0 8.0 Elastic cluster
2dsphere Yes Yes Yes Yes Yes
2d Index No No No No No
Compound Index Yes Yes Yes Yes Yes
Hashed Index No No No No No
Multikey Index Yes Yes Yes Yes Yes
Single Field Index Yes Yes Yes Yes Yes
Text Index No No Yes Yes No
Wildcard No No No No No

Index properties

Command 3.6 4.0 5.0 8.0 Elastic cluster
Background Yes Yes Yes Yes Yes
Case Insensitive No No No Yes No
Hidden No No No No No
Partial No No Yes Yes No
Sparse Yes Yes Yes Yes Yes
Text No No Yes Yes No
TTL Yes Yes Yes Yes Yes
Unique Yes Yes Yes Yes Yes
Vector No No Yes Yes No

For detailed information about specific MongoDB operators, see the following topics: