En las siguientes tablas, se incluye un desglose de las funciones de MongoDB 4.0 que admite
Cloud Firestore. Para conocer las diferencias de comportamiento, consulta
Diferencias de comportamiento.
Operadores de consulta y proyección
Cloud Firestore admite los siguientes operadores de proyección y consulta:
Operadores de array
| Operador |
Admitido |
$all |
Sí |
$elemMatch |
Sí |
$size |
Sí |
Operadores a nivel de bits
| Operador |
Admitido |
$bitsAllClear |
No |
$bitsAllSet |
No |
$bitsAnyClear |
No |
$bitsAnySet |
No |
| Operador |
Admitido |
$comment |
No |
Operadores de comparación
| Operador |
Admitido |
$eq |
Sí |
$gt |
Sí |
$gte |
Sí |
$in |
Sí |
$lt |
Sí |
$lte |
Sí |
$ne |
Sí |
$nin |
Sí |
Operadores de elementos
| Operador |
Admitido |
$exists |
Sí |
$type |
Sí |
Operadores de consultas de evaluación
| Operador |
Admitido |
$expr |
Sí |
$jsonSchema |
No |
$mod |
Sí |
$regex |
Sí |
$text |
No |
$where |
No |
Operadores lógicos
| Operador |
Admitido |
$and |
Sí |
$nor |
Sí |
$not |
Sí |
$or |
Sí |
Operadores de proyección
| Operador |
Admitido |
$ |
Sí |
$elemMatch |
Sí |
$meta |
No |
$slice |
Sí |
Operadores de actualización
Cloud Firestore admite los siguientes operadores de actualización.
Operadores de array
| Operador |
Admitido |
$ |
Sí |
$[] |
Sí |
$[<identifier>] |
Sí |
$addToSet |
Sí |
$pop |
Sí |
$pull |
Sí |
$pullAll |
Sí |
$push |
Sí |
Operadores a nivel de bits
| Operador |
Admitido |
$bit |
Sí |
Operadores de campo
| Operador |
Admitido |
$currentDate |
Sí |
$inc |
Sí |
$max |
Sí |
$min |
Sí |
$mul |
Sí |
$rename |
Sí |
$setOnInsert |
Sí |
Modificadores de actualización
| Modificador |
Admitido |
$each |
Sí |
$position |
Sí |
$slice |
Sí |
$sort |
Sí |
Operadores de canalización de agregación
Cloud Firestore admite los siguientes operadores de canalización de agregación.
Acumuladores
| Expresión |
Admitido |
$addToSet |
Sí |
$avg |
Sí |
$first |
Sí |
$last |
Sí |
$max |
Sí |
$mergeObjects |
Sí |
$min |
Sí |
$push |
Sí |
$stdDevPop |
No |
$stdDevSamp |
No |
$sum |
Sí |
Expresiones de acumulador
| Expresión |
Admitido |
$avg |
Sí |
$first |
Sí |
$last |
Sí |
$max |
Sí |
$min |
Sí |
$stdDevPop |
No |
$stdDevSamp |
No |
$sum |
Sí |
Operadores aritméticos
Limitaciones: Los operadores aritméticos no admiten valores decimal128.
| Operador |
Admitido |
$abs |
Sí |
$add |
Sí |
$ceil |
Sí |
$divide |
Sí |
$exp |
Sí |
$floor |
Sí |
$ln |
Sí |
$log |
Sí |
$log10 |
Sí |
$mod |
Sí |
$multiply |
Sí |
$pow |
Sí |
$sqrt |
Sí |
$subtract |
Sí |
$trunc |
Sí |
Operadores de array
| Operador |
Admitido |
$arrayElemAt |
Sí |
$arrayToObject |
Sí |
$concatArrays |
Sí |
$filter |
Sí |
$firstN |
Sí |
$in |
Sí |
$indexOfArray |
Sí |
$isArray |
Sí |
$map |
Sí |
$objectToArray |
Sí |
$range |
Sí |
$reduce |
Sí |
$reverseArray |
Sí |
$size |
Sí |
$slice |
Sí |
$zip |
Sí |
Operadores booleanos
| Operador |
Admitido |
$and |
Sí |
$not |
Sí |
$or |
Sí |
Operadores de comparación
| Operador |
Admitido |
$cmp |
Sí |
$eq |
Sí |
$gt |
Sí |
$gte |
Sí |
$lt |
Sí |
$lte |
Sí |
$ne |
Sí |
Operadores de expresiones condicionales
| Operador |
Admitido |
$cond |
Sí |
$ifNull |
Sí |
$switch |
Sí |
Operadores de fecha
| Operador |
Admitido |
$dateFromParts |
Sí |
$dateFromString |
Sí |
$dateToParts |
Sí |
$dateToString |
Sí |
$dayOfMonth |
Sí |
$dayOfWeek |
Sí |
$dayOfYear |
Sí |
$hour |
Sí |
$isoDayOfWeek |
Sí |
$isoWeek |
Sí |
$isoWeekYear |
Sí |
$millisecond |
Sí |
$minute |
Sí |
$month |
Sí |
$second |
Sí |
$toDate |
Sí |
$week |
Sí |
$year |
Sí |
Operadores varios
| Operador |
Admitido |
$natural |
Sí (ascendente) |
$toHashedIndexKey |
No |
Operadores de expresiones literales
| Operador |
Admitido |
$literal |
Sí |
Operadores de objetos
| Operador |
Admitido |
$mergeObjects |
Sí |
$objectToArray |
Sí |
Operadores set
| Operador |
Admitido |
$allElementsTrue |
Sí |
$anyElementTrue |
Sí |
$setDifference |
Sí |
$setEquals |
Sí |
$setIntersection |
Sí |
$setIsSubset |
Sí |
$setUnion |
Sí |
Operadores de etapa
| Operador |
Admitido |
$addFields |
Sí |
$bucket |
Sí |
$bucketAuto |
No |
$collStats |
No |
$count |
Sí |
$currentOp |
No |
$facet |
Sí |
$geoNear |
No |
$graphLookup |
No |
$group |
Sí |
$indexStats |
No |
$limit |
Sí |
$listLocalSessions |
No |
$listSessions |
No |
$lookup |
Sí
No admite los campos let y pipeline.
|
$match |
Sí |
$out |
No |
$project |
Sí |
$redact |
No |
$replaceRoot |
Sí |
$sample |
No |
$set |
Sí |
$skip |
Sí |
$sort |
Sí |
$sortByCount |
Sí |
$unset |
Sí |
$unwind |
Sí |
Operadores de cadenas
| Operador |
Admitido |
$concat |
Sí |
$dateFromString |
Sí |
$dateToString |
Sí |
$indexOfBytes |
Sí |
$indexOfCP |
Sí |
$ltrim |
Sí |
$rtrim |
Sí |
$split |
Sí |
$strcasecmp |
Sí |
$strLenBytes |
Sí |
$strLenCP |
Sí |
$substr |
Sí |
$substrBytes |
Sí |
$substrCP |
Sí |
$toLower |
Sí |
$toString |
Sí |
$toUpper |
Sí |
$trim |
Sí |
Variables de sistema
| Variable |
Admitido |
$$CURRENT |
No |
$$DESCEND |
No |
$$KEEP |
No |
$$PRUNE |
No |
$$REMOVE |
Yes |
$$ROOT |
Sí |
Operadores de texto
| Operador |
Admitido |
$meta |
No |
Operadores de tipo
| Operador |
Admitido |
$convert |
Sí |
$toBool |
Sí |
$toDate |
Sí |
$toDecimal |
Sí |
$toDouble |
Sí |
$toInt |
Sí |
$toLong |
Sí |
$toObjectId |
Sí |
$toString |
Sí |
$type |
Sí |
Operadores de variables
| Operador |
Admitido |
$let |
Sí |
Geoespacial
Cloud Firestore admite los siguientes operadores geoespaciales.
Especificadores de geometría
| Especificador |
Admitido |
$box |
No |
$center |
No |
$centerSphere |
No |
$geometry |
No |
$maxDistance |
No |
$minDistance |
No |
$polygon |
No |
$uniqueDocs |
No |
Selectores de consultas
| Selector |
Admitido |
$geoIntersects |
No |
$geoWithin |
No |
$near |
No |
$nearSphere |
No |
$nearSphere |
No |
$uniqueDocs |
No |
Índices y propiedades de los índices
Cloud Firestore admite los siguientes índices y operadores de índice.
Índices
| Tipo de índice |
Admitido |
| 2 d |
No |
| 2dsphere |
No |
| Complejo |
Sí |
| Con hash |
No |
| Varias claves |
Sí |
| De campo único |
Sí |
| Texto |
No |
Propiedades del índice
| Propiedad |
Admitido |
| Segundo plano |
Sí |
| No distingue mayúsculas de minúsculas |
No |
| Parcial |
No |
| No dispersa |
Sí |
| Dispersa |
Sí |
| Texto |
No |
| TTL |
No |
| Único |
Sí |
Comandos de base de datos
Cloud Firestore admite los siguientes comandos de bases de datos.
Agregación
| Comando |
Admitido |
aggregate |
Sí |
count |
Sí |
distinct |
Sí |
group |
No
Se admite la etapa $group en las agregaciones, pero no el comando group.
|
mapReduce |
No |
Autenticación
| Comando |
Admitido |
authenticate |
No |
getnonce |
No |
logout |
No |
Operaciones de escritura y consulta
| Comando |
Admitido |
watch (flujos de cambios) |
No |
delete |
Sí |
eval |
No |
find |
Sí |
findAndModify |
Sí |
getLastError |
Sí |
getMore |
Sí |
getPrevError |
No |
GridFS |
No |
insert |
Sí |
parallelCollectionScan |
No |
replaceOne |
No
El método del controlador replaceOne es compatible con el comando update.
|
resetError |
No |
update |
Sí |
Comandos de sesión
| Comando |
Admitido |
abortTransaction |
Sí |
commitTransaction |
Sí |
endSessions |
Sí |
killAllSessions |
No |
killAllSessionsByPattern |
No |
killSessions |
No |
refreshSessions |
No |
startSession |
Las sesiones se pueden iniciar con el método del controlador startSession. |
Comandos administrativos
Cloud Firestore admite los siguientes comandos administrativos.
| Comando |
Admitido |
cloneCollectionAsCapped |
No |
collMod |
No |
collMod: expireAfterSeconds |
No |
convertToCapped |
No |
copydb |
No |
create |
Sí |
createIndex |
Sí Para crear índices, consulta Administra índices. |
createIndexes |
Sí Para crear índices, consulta Administra índices. |
createView |
No |
currentOp |
No |
drop |
No |
dropDatabase |
No Para borrar una base de datos, consulta Borra una base de datos. |
dropIndex |
Sí Para borrar índices, consulta Administra índices. |
dropIndexes |
No |
filemd5 |
No |
killCursors |
Sí |
killOp |
No |
listCollections |
Sí |
listDatabases |
Sí |
listIndexes |
Sí |
reIndex |
No |
renameCollection |
No |
setAuditConfig |
No |
Comandos de diagnóstico
| Comando |
Admitido |
buildInfo |
Sí |
collStats |
No |
connectionStatus |
Sí |
connPoolStats |
No |
dataSize |
No |
dbHash |
No |
dbStats |
No |
explain |
Sí Para conocer las diferencias y limitaciones de comportamiento, consulta Explicación de la búsqueda. |
features |
No |
hostInfo |
Sí |
listCommands |
No |
profiler |
No |
serverStatus |
No |
top |
No |
whatsmyuri |
No |
Comandos de administración de roles
Para administrar el acceso a la base de datos, Cloud Firestore admite
roles y permisos de Identity and Access Management.
| Comando |
Admitido |
createRole |
No |
dropAllRolesFromDatabase |
No |
dropRole |
No |
grantRolesToRole |
No |
revokePrivilegesFromRole |
No |
revokeRolesFromRole |
No |
rolesInfo |
No |
updateRole |
No |
¿Qué sigue?