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

Command3.64.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

Command3.64.0

aggregate

Yes

Yes

count

Yes

Yes

distinct

Yes

Yes

mapReduce

No

No

Authentication

Command3.64.0

authenticate

Yes

Yes

logout

Yes

Yes

Diagnostic Commands

Command3.64.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

Command3.64.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

Command3.64.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

Command3.64.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

Command3.64.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

Command3.64.0

$all

Yes

Yes

$elemMatch

Yes

Yes

$size

Yes

Yes

Bitwise Operators

Command3.64.0

$bitsAllSet

Yes

Yes

$bitsAnySet

Yes

Yes

$bitsAllClear

Yes

Yes

$bitsAnyClear

Yes

Yes

Comment Operator

Command3.64.0

$comment

Yes

Yes

Comparison Operators

Command3.64.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

Command3.64.0

$exists

Yes

Yes

$type

Yes

Yes

Evaluation Query Operators

Command3.64.0

$expr

No

No

$jsonSchema

No

No

$mod

Yes

Yes

$regex

Yes

Yes

$text

No

No

$where

No

No

Logical Operators

Command3.64.0

$or

Yes

Yes

$and

Yes

Yes

$not

Yes

Yes

$nor

Yes

Yes

Projection Operators

Command3.64.0

$

Yes

Yes

$elemMatch

Yes

Yes

$meta

No

No

$slice

Yes

Yes

Update Operators

Array Operators

Command3.64.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

Command3.64.0

$bit

Yes

Yes

Field Operators

Operator3.64.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

Operator3.64.0

$each

Yes

Yes

$slice

Yes

Yes

$sort

Yes

Yes

$position

Yes

Yes

Geospatial

Geometry Specifiers

Query Selectors3.64.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

Command3.64.0

$geoIntersects

No

No

$geoWithin

No

No

$near

No

No

$nearSphere

No

No

$polygon

No

No

$uniqueDocs

No

No

Cursor Methods

Command3.64.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

Expression3.64.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

Command3.64.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

Command3.64.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

Command3.64.0

$and

Yes

Yes

$or

Yes

Yes

$not

Yes

Yes

Comparison Operators

Command3.64.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

Command3.64.0

$cond

Yes

Yes

$ifNull

Yes

Yes

$switch

No

No

Data Type Operator

Command3.64.0

$type

No

No

Date Operators

Command3.64.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

Command3.64.0

$literal

No

No

Merge Operator

Command3.64.0

$mergeObjects

No

No

Natural Operator

Command3.64.0

$natural

No

No

Set Operators

Command3.64.0

$setEquals

Yes

Yes

$setIntersection

Yes

Yes

$setUnion

Yes

Yes

$setDifference

No

No

$setIsSubset

Yes

Yes

$anyElementTrue

No

No

$allElementsTrue

No

No

Stage Operators

Command3.64.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

Command3.64.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

Command3.64.0

$$CURRENT

No

No

$$DESCEND

Yes

Yes

$$KEEP

Yes

Yes

$$PRUNE

Yes

Yes

$$REMOVE

No

No

$$ROOT

No

No

Text Search Operator

Command3.64.0

$meta

No

No

Type Conversion Operators

Command3.64.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

Command3.64.0

$map

No

No

$let

No

No

Data Types

Command3.64.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

Command3.64.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

Command3.64.0

TTL

Yes

Yes

Unique

Yes

Yes

Partial

No

No

Case Insensitive

No

No

Sparse

Yes

Yes

Background

Yes

Yes