Supported MongoDB APIs, Operations, and Data Types - Amazon DocumentDB

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 support using MongoDB APIs and drivers, please consult the MongoDB Community Forums. For support using the Amazon DocumentDB service, please contact the appropriate AWS support team. 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

Yes

Yes

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

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

Yes

Yes

$geometry

Yes

Yes

$maxDistance

Yes

Yes

$minDistance

Yes

Yes

$polygon

No

No

$uniqueDocs

No

No

Query Selectors

Command 3.6 4.0

$geoIntersects

No

No

$geoWithin

No

No

$near

No

No

$nearSphere

Yes

Yes

$polygon

No

No

$uniqueDocs

No

No

Cursor Methods

Topics

    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

    Yes

    Yes

    $isArray

    Yes

    Yes

    $objectToArray

    Yes

    Yes

    $range

    Yes

    Yes

    $reverseArray

    Yes

    Yes

    $reduce

    No

    No

    $size

    Yes

    Yes

    $slice

    Yes

    Yes

    $zip

    Yes

    Yes

    $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

    Yes

    Yes

    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

    Yes

    Yes

    Merge Operator

    Command 3.6 4.0

    $mergeObjects

    No

    No

    Natural Operator

    Command 3.6 4.0

    $natural

    Yes

    Yes

    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

    Yes

    Yes

    $lookup

    Yes

    Yes

    $out

    Yes

    Yes

    $indexStats

    Yes

    Yes

    $facet

    No

    No

    $bucket

    No

    No

    $bucketAuto

    No

    No

    $sortByCount

    No

    No

    $addFields

    Yes

    Yes

    $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

    Yes

    Yes

    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

    Yes

    Yes

    $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

    Yes

    Yes

    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

    Yes

    Yes

    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