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: