Compatibilidad de MongoDB y compatibilidad de características con núcleos virtuales de Azure Cosmos DB for MongoDB
SE APLICA A: núcleo virtual de MongoDB
El núcleo virtual de Azure Cosmos DB for MongoDB le permite experimentar las ventajas conocidas de MongoDB al acceder a las características empresariales mejoradas que ofrece Azure Cosmos DB. Garantiza la compatibilidad siguiendo el protocolo de conexión de MongoDB, lo que le permite aprovechar los controladores de cliente existentes, los SDK y otras herramientas con las que ya está familiarizado.
Compatibilidad con protocolos
A continuación se enumeran los operadores admitidos y las limitaciones o excepciones. Cualquier controlador de cliente que reconozca estos protocolos podrá conectarse a Azure Cosmos DB for MongoDB. Al crear clústeres de núcleo virtual de Azure Cosmos DB for MongoDB, el punto de conexión tiene el formato *.mongocluster.cosmos.azure.com
.
Compatibilidad con lenguajes de consulta
Azure Cosmos DB for MongoDB proporciona una compatibilidad completa con las construcciones del lenguaje de consulta de MongoDB. A continuación, encontrará la lista detallada de las opciones, comandos, fases, operadores y comandos admitidos actualmente.
Nota:
En este artículo solo se enumeran los comandos de servidor admitidos y se excluyen las funciones contenedoras del lado cliente. Las funciones contenedoras del lado cliente, como deleteMany()
y updateMany()
usan internamente los comandos de servidor delete()
y update()
. Las funciones que usan comandos de servidor admitidos son compatibles con Azure Cosmos DB for MongoDB.
Comandos de base de datos
Los núcleos virtuales de Azure Cosmos DB for MongoDB admiten los siguientes comandos de base de datos:
Categoría | Comando | Característica | ||
v5.0 | v6.0 | v7.0 | ||
Comandos de agregación | agregado | |||
count | ||||
distinct | ||||
mapReduce | En desuso en MongoDB 5.0 | |||
Comandos de autenticación | authenticate | |||
getnonce | En desuso en MongoDB 4.0 | |||
logout | En desuso en MongoDB 5.0 | |||
Comandos geoespaciales | geoSearch | En desuso en MongoDB 5.0 | ||
Comandos de caché del plan de consulta | ||||
Comandos administrativos | cloneCollectionAsCapped | No, actualmente no se admiten las colecciones limitadas. | ||
collMod | ||||
compact | ||||
convertToCapped | Núm. Actualmente no se admiten las colecciones limitadas. | |||
create | ||||
createIndexes | ||||
currentOp | ||||
drop | ||||
dropDatabase | ||||
dropConnections | Como servicio PaaS, Azure se ocupará de su administración. | |||
dropIndexes | ||||
filemd5 | ||||
fsync | Como servicio PaaS, Azure se ocupará de su administración. | |||
fsyncUnlock | Como servicio PaaS, Azure se ocupará de su administración. | |||
getDefaultRWConcern | ||||
getClusterParameter | ||||
getParameter | ||||
killCursors | ||||
killOp | ||||
listCollections | ||||
listDatabases | ||||
listIndexes | ||||
logRotate | Como servicio PaaS, Azure se ocupará de su administración. | |||
reIndex | ||||
renameCollection | ||||
rotateCertificates | Como servicio PaaS, Azure se ocupará de su administración. | |||
setFeatureCompatibilityVersion | Como servicio PaaS, Azure se ocupará de su administración. | |||
setIndexCommitQuorum | ||||
setParameter | ||||
setDefaultRWConcern | ||||
shutdown | Como servicio PaaS, Azure se ocupará de su administración. | |||
Comandos de administración de usuarios y roles | Actualmente no se admiten, pero estarán disponibles a través de Azure Active Directory en el futuro. | |||
Comandos de replicación | Azure administra la replicación, lo que elimina la necesidad de que los clientes se repliquen manualmente. | |||
Comandos de particionamiento | enableSharding | |||
isdbgrid | ||||
reshardCollection | ||||
shardCollection | ||||
unsetSharding | En desuso en MongoDB 5.0 | |||
addShard | Como oferta de plataforma como servicio (PaaS), Azure administra la administración y el reequilibrio de particiones. Los usuarios solo necesitan especificar la estrategia de particionamiento para las colecciones y Azure controlará el resto. | |||
addShardToZone | ||||
clearJumboFlag | ||||
cleanupOrphaned | ||||
removeShard | ||||
removeShardFromZone | ||||
setShardVersion | ||||
mergeChunks | ||||
checkShardingIndex | ||||
getShardMap | ||||
getShardVersion | ||||
medianKey | ||||
splitVector | ||||
shardingState | ||||
cleanupReshardCollection | ||||
flushRouterConfig | ||||
balancerCollectionStatus | ||||
balancerStart | ||||
balancerStatus | ||||
balancerStop | ||||
configureCollectionBalancing | ||||
listShards | ||||
split | ||||
moveChunk | ||||
updateZoneKeyRange | ||||
movePrimary | ||||
abortReshardCollection | ||||
commitReshardCollection | ||||
refineCollectionShardKey | ||||
Comandos de operación de consulta y escritura | change streams | |||
delete | ||||
find | ||||
findAndModify | ||||
getLastError | En desuso en MongoDB 5.1 | |||
getMore | ||||
insert | ||||
resetError | En desuso en MongoDB 5.0 | |||
update | ||||
Comandos de sesión | abortTransaction | |||
commitTransaction | ||||
endSessions | ||||
killAllSessions | ||||
killAllSessionsByPattern | ||||
killSessions | ||||
refreshSessions | ||||
startSession | ||||
Comandos de diagnóstico | availableQueryOptions | |||
buildInfo | ||||
collStats | ||||
connPoolStats | ||||
connectionStatus | ||||
dataSize | ||||
dbHash | ||||
dbStats | ||||
driverOIDTest | Como servicio PaaS, Azure se ocupará de su administración. | |||
explain | ||||
features | Como servicio PaaS, Azure se ocupará de su administración. | |||
getCmdLineOpts | ||||
getLog | ||||
hello | ||||
hostInfo | ||||
_isSelf | ||||
listCommands | ||||
lockInfo | ||||
netstat | ||||
ping | ||||
profile | Como servicio PaaS, Azure se ocupará de su administración. | |||
serverStatus | ||||
shardConnPoolStats | En desuso en MongoDB 5.0 | |||
top | ||||
validate | ||||
whatsmyuri | ||||
Comandos de auditoría de eventos del sistema | logApplicationMessage |
Operadores
A continuación se muestra la lista de operadores admitidos actualmente en el núcleo virtual de Azure Cosmos DB for MongoDB:
Nota:
AvgObjsize y size en "collStats" y "dbStats" funcionan solo con un tamaño de documento inferior a 2 KB.
Categoría | Comando | Característica | ||
v5.0 | v6.0 | v7.0 | ||
Operadores de consulta de comparación | $eq | |||
$gt | ||||
$gte | ||||
$in | ||||
$lt | ||||
$lte | ||||
$ne | ||||
$nin | ||||
Operadores de consulta lógica | $and | |||
$not | ||||
$nor | ||||
$or | ||||
Operadores de consulta de elementos | $exists | |||
$type | ||||
Operadores de consulta de evaluación | $expr | |||
$jsonSchema | ||||
$mod | ||||
$regex | ||||
$text | ||||
$where | ||||
Operadores de geoespaciales | $geoIntersects | |||
$geoWithin | ||||
$box | ||||
$center | ||||
$centerSphere | ||||
$geometry | ||||
$maxDistance | ||||
$minDistance | ||||
$polygon | ||||
$near | ||||
$nearSphere | ||||
Operadores de consulta de matriz | $all | |||
$elemMatch | ||||
$size | ||||
Operadores de consulta bit a bit | $bitsAllClear | |||
$bitsAllSet | ||||
$bitsAnyClear | ||||
$bitsAnySet | ||||
Operadores de proyección | $ | |||
$elemMatch | ||||
$meta | ||||
$slice | ||||
Operadores de consulta variados | $comment | |||
$rand | ||||
$natural | ||||
Operadores de actualización de campo | $currentDate | |||
$inc | ||||
$min | ||||
$max | ||||
$mul | ||||
$rename | ||||
$set | ||||
$setOnInsert | ||||
$unset | ||||
Operadores de actualización de matriz | $ | |||
$[] | ||||
$[identifier] | ||||
$addToSet | ||||
$pop | ||||
$pull | ||||
$push | ||||
$pullAll | ||||
$each | ||||
$position | ||||
$slice | ||||
$sort | ||||
Operador de actualización bit a bit | $bit | |||
Operadores de expresión aritmética | $abs | |||
$add | ||||
$ceil | ||||
$divide | ||||
$exp | ||||
$floor | ||||
$ln | ||||
$log | ||||
$log10 | ||||
$mod | ||||
$multiply | ||||
$pow | ||||
$round | ||||
$sqrt | ||||
$subtract | ||||
$trunc | ||||
Operadores de expresión de matriz | $arrayElemAt | |||
$arrayToObject | ||||
$concatArrays | ||||
$filter | ||||
$firstN | ||||
$in | ||||
$indexOfArray | ||||
$isArray | ||||
$lastN | ||||
$map | ||||
$maxN | ||||
$minN | ||||
$objectToArray | ||||
$range | ||||
$reduce | ||||
$reverseArray | ||||
$size | ||||
$slice | ||||
$sortArray | ||||
$zip | ||||
Operadores bit a bit | $bitAnd | |||
$bitNot | ||||
$bitOr | ||||
$bitXor | ||||
Operadores de expresión booleana | $and | |||
$not | ||||
$or | ||||
Operadores de expresión de comparación | $cmp | |||
$eq | ||||
$gt | ||||
$gte | ||||
$lt | ||||
$lte | ||||
$ne | ||||
Operadores de expresión de agregación personalizada | Aún no se admite. | |||
Operadores de tamaño de datos | $bsonSize | |||
$binarySize | ||||
Operadores de expresión de fecha | $dateAdd | |||
$dateDiff | ||||
$dateFromParts | ||||
$dateFromString | ||||
$dateSubtract | ||||
$dateToParts | ||||
$dateToString | ||||
$dateTrunc | ||||
$dayOfMonth | ||||
$dayOfWeek | ||||
$dayOfYear | ||||
$hour | ||||
$isoDayOfWeek | ||||
$isoWeek | ||||
$isoWeekYear | ||||
$millisecond | ||||
$minute | ||||
$month | ||||
$second | ||||
$toDate | ||||
$week | ||||
$year | ||||
Operador de expresión literal | $literal | |||
Operadores varios | $getField | |||
$rand | ||||
$sampleRate | ||||
Operadores de expresión de objeto | $mergeObjects | |||
$objectToArray | ||||
$setField | ||||
Operadores de expresión de conjunto | $allElementsTrue | |||
$anyElementTrue | ||||
$setDifference | ||||
$setEquals | ||||
$setIntersection | ||||
$setIsSubset | ||||
$setUnion | ||||
Operadores de expresión de cadena | $concat | |||
$dateFromString | ||||
$dateToString | ||||
$indexOfBytes | ||||
$indexOfCP | ||||
$ltrim | ||||
$regexFind | ||||
$regexFindAll | ||||
$regexMatch | ||||
$replaceOne | ||||
$replaceAll | ||||
$rtrim | ||||
$split | ||||
$strLenBytes | ||||
$strLenCP | ||||
$strcasecmp | ||||
$substr | ||||
$substrBytes | ||||
$substrCP | ||||
$toLower | ||||
$toString | ||||
$trim | ||||
$toUpper | ||||
Operador de expresión de texto | $meta | |||
Operadores de expresión de marca de tiempo | $tsIncrement | |||
$tsSecond | ||||
Operadores de expresión trigonométrica | $sin | |||
$cos | ||||
$tan | ||||
$asin | ||||
$acos | ||||
$atan | ||||
$atan2 | ||||
$asinh | ||||
$acosh | ||||
$atanh | ||||
$sinh | ||||
$cosh | ||||
$tanh | ||||
$degreesToRadians | ||||
$radiansToDegrees | ||||
Operadores de expresión de tipo | $convert | |||
$isNumber | ||||
$toBool | ||||
$toDate | ||||
$toDecimal | ||||
$toDouble | ||||
$toInt | ||||
$toLong | ||||
$toObjectId | ||||
$toString | ||||
$type | ||||
Accumulators ($group, $bucket, $bucketAuto, $setWindowFields) | $accumulator | |||
$addToSet | ||||
$avg | ||||
$bottom | ||||
$bottomN | ||||
$count | ||||
$first | ||||
$firstN | ||||
$last | ||||
$lastN | ||||
$max | ||||
$maxN | ||||
$median | ||||
$mergeObjects | ||||
$min | ||||
$percentile | ||||
$push | ||||
$stdDevPop | ||||
$stdDevSamp | ||||
$sum | ||||
$top | ||||
$topN | ||||
Acumuladores (en otras fases) | $avg | |||
$first | ||||
$last | ||||
$max | ||||
$median | ||||
$min | ||||
$percentile | ||||
$stdDevPop | ||||
$stdDevSamp | ||||
$sum | ||||
Operadores de expresión variable | $let | |||
Operadores de ventana | $sum | |||
$push | ||||
$addToSet | ||||
$count | ||||
$max | ||||
$min | ||||
$avg | ||||
$stdDevPop | ||||
$bottom | ||||
$bottomN | ||||
$covariancePop | ||||
$covarianceSamp | ||||
$denseRank | ||||
$derivative | ||||
$documentNumber | ||||
$expMovingAvg | ||||
$first | ||||
$integral | ||||
$last | ||||
$linearFill | ||||
$locf | ||||
$minN | ||||
$rank | ||||
$shift | ||||
$stdDevSamp | ||||
$top | ||||
$topN | ||||
Operadores de expresión condicional | $cond | |||
$ifNull | ||||
$switch | ||||
Fases de canalización de agregación | $addFields | |||
$bucket | ||||
$bucketAuto | ||||
$changeStream | ||||
$changeStreamSplitLargeEvent | ||||
$collStats | ||||
$count | ||||
$densify | ||||
$documents | ||||
$facet | ||||
$fill | ||||
$geoNear | ||||
$graphLookup | ||||
$group | ||||
$indexStats | ||||
$limit | ||||
$listSampledQueries | ||||
$listSearchIndexes | ||||
$listSessions | ||||
$lookup | ||||
$match | ||||
$merge | ||||
$out | ||||
$planCacheStats | ||||
$project | ||||
$redact | ||||
$replaceRoot | ||||
$replaceWith | ||||
$sample | ||||
$search | ||||
$searchMeta | ||||
$set | ||||
$setWindowFields | ||||
$skip | ||||
$sort | ||||
$sortByCount | ||||
$unionWith | ||||
$unset | ||||
$unwind | ||||
$shardedDataDistribution | ||||
$changeStream | ||||
$currentOp | ||||
$listLocalSessions | ||||
$documents | ||||
Variables en expresiones de agregación | AHORA | |||
ROOT | ||||
REMOVE | ||||
CURRENT | ||||
CLUSTER_TIME | ||||
DESCEND | ||||
PRUNE | ||||
KEEP | ||||
SEARCH_META | ||||
USER_ROLES |
Índices y propiedades de índice
El núcleo virtual de Azure Cosmos DB for MongoDB admite los siguientes índices y propiedades de índice:
Nota
La creación de un índice único obtiene un bloqueo exclusivo en la colección durante toda la duración del proceso de compilación. Esta acción bloquea las operaciones de lectura y escritura en la colección hasta que se complete la operación.
Índices
Get-Help | Compatible |
Índice de campo único | |
Índice compuesto | |
Índice de varias claves | |
Índice de texto | |
Índices de caracteres comodín | |
Índice geoespacial | |
Índice de hash | |
Índice vectorial (solo disponible en Cosmos DB) | Sí, con el vector de búsqueda |
Propiedades de índice
Get-Help | Compatible |
TTL | |
Único | |
Parcial | |
No distingue mayúsculas de minúsculas | |
Dispersos | |
Fondo |