En las siguientes tablas, se incluye un desglose de las funciones de MongoDB 7.0 que admite Cloud Firestore con compatibilidad con MongoDB. Para conocer las diferencias de comportamiento, consulta
Diferencias de comportamiento.
Operadores de consulta y proyección
Cloud Firestore con compatibilidad con MongoDB 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 con compatibilidad con MongoDB admite los siguientes operadores de actualización.
Operadores de array
| Operador |
Admitido |
$ |
Sí |
$[] |
Sí |
$[<identifier>] |
Sí |
$addToSet |
Sí |
$percentile |
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í |
$set |
Sí |
$setOnInsert |
Sí |
$unset |
Sí |
Modificadores de actualización
| Modificador |
Admitido |
$each |
Sí |
$position |
Sí |
$slice |
Sí |
$sort |
Sí |
Operadores de canalización de agregación
Cloud Firestore con compatibilidad con MongoDB admite los siguientes operadores de canalización de agregación.
Acumuladores
| Expresión |
Admitido |
$accumulator |
No |
$addToSet |
Sí |
$avg |
Sí |
$bottom |
No |
$bottomN |
No |
$count |
Sí |
$first |
Sí |
$firstN |
No |
$last |
Sí |
$lastN |
No |
$max |
Sí |
$maxN |
No |
$median |
No |
$mergeObjects |
Sí |
$min |
Sí |
$minN |
No |
$percentile |
No |
$push |
Sí |
$stdDevPop |
No |
$stdDevSamp |
No |
$sum |
Sí |
$top |
No |
$topN |
No |
Expresiones de acumulador
| Expresión |
Admitido |
$avg |
Sí |
$first |
Sí |
$last |
Sí |
$max |
Sí |
$median |
Sí |
$min |
Sí |
$percentile |
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í |
$round |
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í |
$lastN |
Sí |
$map |
Sí |
$maxN |
Sí |
$minN |
Sí |
$objectToArray |
Sí |
$range |
Sí |
$reduce |
Sí |
$reverseArray |
Sí |
$size |
Sí |
$slice |
Sí |
$sortArray |
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 tamaño de datos
| Operador |
Admitido |
$binarySize |
Sí |
$bsonSize |
Sí |
Operadores de fecha
| Operador |
Admitido |
$dateAdd |
Sí |
$dateDiff |
Sí |
$dateFromParts |
Sí |
$dateFromString |
Sí |
$dateSubtract |
Sí |
$dateToParts |
Sí |
$dateToString |
Sí |
$dateTrunc |
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 de marca de tiempo
| Operador |
Admitido |
$tsIncrement |
No |
$tsSecond |
No |
Operadores varios
| Operador |
Admitido |
$getField |
Sí |
$natural |
Sí (ascendente) |
$rand |
No |
$sampleRate |
No |
$toHashedIndexKey |
No |
Operadores de expresiones literales
| Operador |
Admitido |
$literal |
Sí |
Operadores de objetos
| Operador |
Admitido |
$mergeObjects |
Sí |
$objectToArray |
Sí |
$setField |
No |
Operadores de configuración
| 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 |
$changeStreams |
No |
$collStats |
No |
$count |
Sí |
$currentOp |
No |
$documents |
Sí |
$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í |
$merge |
No |
$out |
No |
$planCacheStats |
No |
$project |
Sí |
$redact |
No |
$replaceRoot |
Sí |
$replaceWith |
Sí |
$sample |
No |
$set |
Sí |
$search |
No |
$setWindowFields |
No |
$skip |
Sí |
$sort |
Sí |
$sortByCount |
Sí |
$unionWith |
Sí |
$unset |
Sí |
$unwind |
Sí |
Operadores de cadenas
| Operador |
Admitido |
$concat |
Sí |
$dateFromString |
Sí |
$dateToString |
Sí |
$indexOfBytes |
Sí |
$indexOfCP |
Sí |
$ltrim |
Sí |
$regexFind |
Sí |
$regexFindAll |
Sí |
$regexMatch |
Sí |
$replaceAll |
Sí |
$replaceOne |
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 |
$$CLUSTERTIME |
No |
$$CURRENT |
No |
$$DESCEND |
No |
$$KEEP |
No |
$$NOW |
Yes |
$$PRUNE |
No |
$$REMOVE |
Yes |
$$ROOT |
Sí |
Operadores de texto
| Operador |
Admitido |
$meta |
No |
Operadores de trigonometría
| Operador |
Admitido |
$acos |
No |
$acosh |
No |
$asin |
No |
$asinh |
No |
$atan |
No |
$atan2 |
No |
$atanh |
No |
$cos |
No |
$cosh |
No |
$degreesToRadians |
No |
$radiansToDegrees |
No |
$sin |
No |
$sinh |
No |
$tan |
No |
$tanh |
No |
Operadores de tipo
| Operador |
Admitido |
$convert |
Sí |
$isNumber |
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 con compatibilidad con MongoDB 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 con compatibilidad con MongoDB 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 |
| Oculto |
No |
| Parcial |
No |
| No dispersa |
Sí |
| Dispersa |
Sí |
| Texto |
No |
| TTL |
No |
| Único |
Sí |
| Comodín |
No |
| Vector |
No |
Comandos de base de datos
Cloud Firestore con compatibilidad con MongoDB 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 con compatibilidad con MongoDB 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 |
getAuditConfig |
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 |
hello |
Sí |
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 con compatibilidad con MongoDB 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?