Query and projection operators
Cloud Firestore with MongoDB compatibility supports the following query and projection operators:
Array operators
Operator | Supported |
---|---|
$all
|
Yes |
$elemMatch
|
Yes |
$size
|
Yes |
Bitwise operators
Operator | Supported |
---|---|
$bitsAllClear
|
No |
$bitsAllSet
|
No |
$bitsAnyClear
|
No |
$bitsAnySet
|
No |
Comment operator
Operator | Supported |
---|---|
$comment
|
No |
Comparison operators
Operator | Supported |
---|---|
$eq
|
Yes |
$gt
|
Yes |
$gte
|
Yes |
$in
|
Yes |
$lt
|
Yes |
$lte
|
Yes |
$ne
|
Yes |
$nin
|
Yes |
Element operators
Operator | Supported |
---|---|
$exists
|
Yes |
$type
|
Yes |
Evaluation query operators
Operator | Supported |
---|---|
$expr
|
Yes |
$jsonSchema
|
No |
$mod
|
Yes |
$regex
|
Yes |
$text
|
No |
$where
|
No |
Logical operators
Operator | Supported |
---|---|
$and
|
Yes |
$nor
|
Yes |
$not
|
Yes |
$or
|
Yes |
Projection operators
Operator | Supported |
---|---|
$
|
Yes |
$elemMatch
|
Yes |
$meta
|
No |
$slice
|
Yes |
Update operators
Cloud Firestore with MongoDB compatibility supports the following update operators.
Array operators
Operator | Supported |
---|---|
$
|
Yes |
$[]
|
Yes |
$[<identifier>]
|
Yes |
$addToSet
|
Yes |
$pop
|
Yes |
$pull
|
Yes |
$pullAll
|
Yes |
$push
|
Yes |
Bitwise operators
Operator | Supported |
---|---|
$bit
|
Yes |
Field operators
Operator | Supported |
---|---|
$currentDate
|
Yes |
$inc
|
Yes |
$max
|
Yes |
$min
|
Yes |
$mul
|
Yes |
$rename
|
Yes |
$setOnInsert
|
Yes |
Update modifiers
Modifier | Supported |
---|---|
$each
|
Yes |
$position
|
Yes |
$slice
|
Yes |
$sort
|
Yes |
Aggregation pipeline operators
Cloud Firestore with MongoDB compatibility supports the following aggregation pipeline operators.
Accumulator expressions
Expression | Supported |
---|---|
$addToSet
|
Yes |
$avg
|
Yes |
$count
|
Yes |
$first
|
Yes |
$last
|
Yes |
$max
|
Yes |
$min
|
Yes |
$push
|
Yes |
$stdDevPop
|
No |
$stdDevSamp
|
No |
$sum
|
Yes |
Arithmetic operators
Limitations: Arithmetic operators don't support decimal128
values.
Operator | Supported |
---|---|
$abs
|
Yes |
$add
|
Yes |
$ceil
|
Yes |
$divide
|
Yes |
$exp
|
Yes |
$floor
|
Yes |
$ln
|
Yes |
$log
|
Yes |
$log10
|
Yes |
$mod
|
Yes |
$multiply
|
Yes |
$pow
|
Yes |
$sqrt
|
Yes |
$subtract
|
Yes |
$trunc
|
Yes |
Array operators
Operator | Supported |
---|---|
$arrayElemAt
|
Yes |
$arrayToObject
|
Yes |
$concatArrays
|
Yes |
$filter
|
Yes |
$firstN
|
Yes |
$in
|
Yes |
$indexOfArray
|
Yes |
$isArray
|
Yes |
$objectToArray
|
Yes |
$range
|
Yes |
$reduce
|
Yes |
$reverseArray
|
Yes |
$size
|
Yes |
$slice
|
Yes |
$zip
|
Yes |
Boolean operators
Operator | Supported |
---|---|
$and
|
Yes |
$not
|
Yes |
$or
|
Yes |
Comparison operators
Operator | Supported |
---|---|
$cmp
|
Yes |
$eq
|
Yes |
$gt
|
Yes |
$gte
|
Yes |
$lt
|
Yes |
$lte
|
Yes |
$ne
|
Yes |
Conditional expression operators
Operator | Supported |
---|---|
$cond
|
Yes |
$ifNull
|
Yes |
$switch
|
Yes |
Date operators
Operator | Supported |
---|---|
$dateAdd
|
No |
$dateDiff
|
No |
$dateFromParts
|
No |
$dateFromString
|
Yes |
$dateSubtract
|
No |
$dateToParts
|
Yes |
$dateToString
|
Yes |
$dateTrunc
|
Yes |
$dayOfMonth
|
Yes |
$dayOfWeek
|
Yes |
$dayOfYear
|
Yes |
$hour
|
Yes |
$isoDayOfWeek
|
Yes |
$isoWeek
|
Yes |
$isoWeekYear
|
Yes |
$millisecond
|
Yes |
$minute
|
Yes |
$month
|
Yes |
$second
|
Yes |
$week
|
Yes |
$year
|
Yes |
Miscellaneous operators
Operator | Supported |
---|---|
$getField
|
Yes |
$literal
|
Yes |
$mergeObjects
|
Yes |
$natural
|
Yes (ascending) |
Set operators
Operator | Supported |
---|---|
$allElementsTrue
|
Yes |
$anyElementTrue
|
Yes |
$setDifference
|
Yes |
$setEquals
|
Yes |
$setIntersection
|
Yes |
$setIsSubset
|
Yes |
$setUnion
|
Yes |
$setWindowFields
|
No |
Stage operators
Operator | Supported |
---|---|
$addFields
|
Yes |
$bucket
|
Yes |
$bucketAuto
|
No |
$collStats
|
No |
$count
|
Yes |
$currentOp
|
No |
$documents
|
Yes |
$facet
|
No |
$geoNear
|
No |
$graphLookup
|
No |
$group
|
Yes |
$indexStats
|
No |
$limit
|
Yes |
$listLocalSessions
|
No |
$listSessions
|
No |
$lookup
|
Yes |
$match
|
Yes |
$out
|
No |
$project
|
Yes |
$redact
|
No |
$replaceRoot
|
Yes |
$sample
|
No |
$set
|
Yes |
$setWindowFields
|
No |
$skip
|
Yes |
$sort
|
Yes |
$sortByCount
|
Yes |
$unset
|
Yes |
$unwind
|
Yes |
String operators
Operator | Supported |
---|---|
$concat
|
Yes |
$indexOfBytes
|
Yes |
$indexOfCP
|
Yes |
$ltrim
|
Yes |
$rtrim
|
Yes |
$split
|
Yes |
$strcasecmp
|
Yes |
$strLenBytes
|
Yes |
$strLenCP
|
Yes |
$substr
|
Yes |
$substrBytes
|
Yes |
$substrCP
|
Yes |
$toLower
|
Yes |
$toUpper
|
Yes |
$trim
|
Yes |
System variables
Variable | Supported |
---|---|
$$CURRENT
|
No |
$$DESCEND
|
No |
$$KEEP
|
No |
$$PRUNE
|
No |
$$REMOVE
|
Yes |
$$ROOT
|
Yes |
Text search operators
Operator | Supported |
---|---|
$meta
|
No |
Type conversion operators
Operator | Supported |
---|---|
$convert
|
Yes |
$toBool
|
Yes |
$toDate
|
Yes |
$toDecimal
|
Yes |
$toDouble
|
Yes |
$toInt
|
Yes |
$toLong
|
Yes |
$toObjectId
|
Yes |
$toString
|
Yes |
$type
|
Yes |
Variable operators
Operator | Supported |
---|---|
$let
|
Yes |
$map
|
Yes |
Geospatial
Cloud Firestore with MongoDB compatibility supports the following Geospatial operators.
Geometry specifiers
Specifier | Supported |
---|---|
$box
|
No |
$center
|
No |
$centerSphere
|
No |
$geometry
|
No |
$maxDistance
|
No |
$minDistance
|
No |
$polygon
|
No |
$uniqueDocs
|
No |
Query selectors
Selector | Supported |
---|---|
$geoIntersects
|
No |
$geoWithin
|
No |
$near
|
No |
$nearSphere
|
No |
$nearSphere
|
No |
$uniqueDocs
|
No |
Indexes and index properties
Cloud Firestore with MongoDB compatibility supports the following indexes and index operators.
Indexes
Index type | Supported |
---|---|
2d | No |
2dsphere | No |
Compound | Yes |
Hashed | No |
Multikey | Yes |
Single Field | Yes |
Text | No |
Index properties
Property | Supported |
---|---|
Background | Yes |
Case Insensitive | No |
Partial | No |
Non-Sparse | Yes |
Sparse | Yes |
Text | No |
TTL | No |
Unique | Yes |
Vector | No |
Database commands
Cloud Firestore with MongoDB compatibility supports the following database commands.
Aggregation
Command | Supported |
---|---|
aggregate
|
Yes |
count
|
Yes |
distinct
|
Yes |
group
|
No The |
mapReduce
|
No |
Authentication
Command | Supported |
---|---|
authenticate
|
No |
getnonce
|
No |
logout
|
No |
Query and write operations
Command | Supported |
---|---|
watch
(Change Streams) |
No |
delete
|
Yes |
eval
|
No |
find
|
Yes |
findAndModify
|
Yes |
getLastError
|
Yes |
getMore
|
Yes |
getPrevError
|
No |
GridFS
|
No |
insert
|
Yes |
parallelCollectionScan
|
No |
replaceOne
|
No The |
resetError
|
No |
update
|
Yes |
Session commands
Command | Supported |
---|---|
abortTransaction
|
Yes |
commitTransaction
|
Yes |
endSessions
|
Yes |
killAllSessions
|
No |
killAllSessionsByPattern
|
No |
killSessions
|
No |
refreshSessions
|
No |
startSession
|
Sessions can be started using the |
Administrative commands
Cloud Firestore with MongoDB compatibility supports the following administrative commands.
Command | Supported |
---|---|
cloneCollectionAsCapped
|
No |
collMod
|
No |
collMod: expireAfterSeconds
|
No |
convertToCapped
|
No |
copydb
|
No |
create
|
Yes |
createIndex
|
Yes To create indexes, see Manage indexes . |
createIndexes
|
Yes To create indexes, see Manage indexes . |
createView
|
No |
currentOp
|
No |
drop
|
No |
dropDatabase
|
No To delete a database, see Delete a database . |
dropIndex
|
Yes To delete indexes, see Manage indexes . |
dropIndexes
|
No |
filemd5
|
No |
getAuditConfig
|
No |
killCursors
|
Yes |
killOp
|
No |
listCollections
|
Yes |
listDatabases
|
Yes |
listIndexes
|
Yes |
reIndex
|
No |
renameCollection
|
No |
setAuditConfig
|
No |
Diagnostic commands
Command | Supported |
---|---|
buildInfo
|
Yes |
collStats
|
No |
connectionStatus
|
Yes |
connPoolStats
|
No |
dataSize
|
No |
dbHash
|
No |
dbStats
|
No |
explain
|
Yes For behavior differences and limitations, see Query Explain |
features
|
No |
hello
|
Yes |
hostInfo
|
Yes |
listCommands
|
No |
profiler
|
No |
serverStatus
|
No |
top
|
No |
whatsmyuri
|
No |
Role management commands
To manage database access, Cloud Firestore with MongoDB compatibility supports Identity and Access Management roles and permissions .
Command | Supported |
---|---|
createRole
|
No |
dropAllRolesFromDatabase
|
No |
dropRole
|
No |
grantRolesToRole
|
No |
revokePrivilegesFromRole
|
No |
revokeRolesFromRole
|
No |
rolesInfo
|
No |
updateRole
|
No |
What's next
- Run the Quickstart: Create a database and connect to it .
- Learn about Behavior differences .