Compatibilidade e suporte a recursos do MongoDB com o Azure Cosmos DB for MongoDB vCore
APLICA-SE AO: MongoDB vCore
O Azure Cosmos DB for MongoDB vCore permite que você experimente as vantagens familiares do MongoDB ao acessar os recursos corporativos aprimorados oferecidos pelo Azure Cosmos DB. Ele garante a compatibilidade seguindo o protocolo de transmissão do MongoDB, permitindo que você aproveite drivers de cliente, SDKs e outras ferramentas existentes com as quais você já está familiarizado.
Suporte a protocolo
Os operadores com suporte e quaisquer limitações ou exceções estão listadas aqui. Qualquer driver cliente que seja compatível com esses protocolos poderá se conectar ao Azure Cosmos DB for MongoDB. Quando você cria clusters do vCore do Azure Cosmos DB for MongoDB, o ponto de extremidade está no formato *.mongocluster.cosmos.azure.com
.
Suporte de linguagem de consulta
O Azure Cosmos DB for MongoDB oferece um suporte abrangente para constructos de linguagem de consulta do MongoDB. Abaixo, você pode encontrar a lista detalhada de comandos, operadores, estágios e opções de banco de dados com suporte no momento.
Observação
Este artigo lista apenas os comandos de servidor com suporte e exclui as funções de wrapper do lado do cliente. Funções de wrapper do lado do cliente, como deleteMany()
e updateMany()
, utilizam internamente os comandos de servidor delete()
e update()
. As funções que utilizam comandos de servidor com suporte são compatíveis com o Azure Cosmos DB for MongoDB.
Comandos de banco de dados
O Azure Cosmos DB for MongoDB vCore é compatível com os seguintes comandos de banco de dados:
Categoria | Comando | Recurso | ||
v5.0 | v6.0 | v7.0 | ||
Comandos de agregação | agregado | |||
count | ||||
distinct | ||||
mapReduce | Preterido no MongoDB 5.0 | |||
Comandos de autenticação | authenticate | |||
getnonce | Descontinuado no MongoDB 4.0 | |||
logout | Preterido no MongoDB 5.0 | |||
Comandos geoespaciais | geoSearch | Preterido no MongoDB 5.0 | ||
Comandos de cache do plano de consulta | ||||
Comandos administrativos | cloneCollectionAsCapped | Atualmente, não há suporte para coleções limitadas. | ||
collMod | ||||
compact | ||||
convertToCapped | N° Atualmente, não há suporte para coleções limitadas. | |||
create | ||||
createIndexes | ||||
currentOp | ||||
drop | ||||
dropDatabase | ||||
dropConnections | Como um serviço de PaaS, isso será gerenciado pelo Azure. | |||
dropIndexes | ||||
filemd5 | ||||
fsync | Como um serviço de PaaS, isso será gerenciado pelo Azure. | |||
fsyncUnlock | Como um serviço de PaaS, isso será gerenciado pelo Azure. | |||
getDefaultRWConcern | ||||
getClusterParameter | ||||
getParameter | ||||
killCursors | ||||
killOp | ||||
listCollections | ||||
listDatabases | ||||
listIndexes | ||||
logRotate | Como um serviço de PaaS, isso será gerenciado pelo Azure. | |||
reIndex | ||||
renameCollection | ||||
rotateCertificates | Como um serviço de PaaS, isso será gerenciado pelo Azure. | |||
setFeatureCompatibilityVersion | Como um serviço de PaaS, isso será gerenciado pelo Azure. | |||
setIndexCommitQuorum | ||||
setParameter | ||||
setDefaultRWConcern | ||||
shutdown | Como um serviço de PaaS, isso será gerenciado pelo Azure. | |||
Comandos de Gerenciamento de Função e Usuário | Não há suporte hoje, mas será disponibilizado por meio do Azure Active Directory no futuro. | |||
Comandos de replicação | O Azure gerencia a replicação, removendo a necessidade de os clientes replicarem manualmente. | |||
Comandos de fragmentação | enableSharding | |||
isdbgrid | ||||
reshardCollection | ||||
shardCollection | ||||
unsetSharding | Preterido no MongoDB 5.0 | |||
addShard | Como uma oferta de PaaS (Plataforma como Serviço), o Azure gerencia o gerenciamento e o reequilíbrio de fragmentos. Os usuários só precisam especificar a estratégia de fragmentação para as coleções e o Azure manipulará o restante. | |||
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 operação de consulta e gravação | change streams | |||
delete | ||||
find | ||||
findAndModify | ||||
getLastError | Descontinuado no MongoDB 5.1 | |||
getMore | ||||
insert | ||||
resetError | Preterido no MongoDB 5.0 | |||
update | ||||
Comandos de sessão | abortTransaction | |||
commitTransaction | ||||
endSessions | ||||
killAllSessions | ||||
killAllSessionsByPattern | ||||
killSessions | ||||
refreshSessions | ||||
startSession | ||||
Comandos de diagnóstico | availableQueryOptions | |||
buildInfo | ||||
collStats | ||||
connPoolStats | ||||
connectionStatus | ||||
dataSize | ||||
dbHash | ||||
dbStats | ||||
driverOIDTest | Como um serviço de PaaS, isso será gerenciado pelo Azure. | |||
explain | ||||
features | Como um serviço de PaaS, isso será gerenciado pelo Azure. | |||
getCmdLineOpts | ||||
getLog | ||||
hello | ||||
hostInfo | ||||
_isSelf | ||||
listCommands | ||||
lockInfo | ||||
netstat | ||||
ping | ||||
profile | Como um serviço de PaaS, isso será gerenciado pelo Azure. | |||
serverStatus | ||||
shardConnPoolStats | Preterido no MongoDB 5.0 | |||
top | ||||
validate | ||||
whatsmyuri | ||||
Comandos de auditoria de eventos do sistema | logApplicationMessage |
Operadores
Veja abaixo a lista de operadores com suporte no Azure Cosmos DB for MongoDB vCore:
Observação
AvgObjsize e tamanho em “collStats” e “dbStats” funciona com tamanho de documento menor que 2KB apenas.
Categoria | Comando | Recurso | ||
v5.0 | v6.0 | v7.0 | ||
Operadores de consulta de comparação | $eq | |||
$gt | ||||
$gte | ||||
$in | ||||
$lt | ||||
$lte | ||||
$ne | ||||
$nin | ||||
Operadores de consulta lógica | $and | |||
$not | ||||
$nor | ||||
$or | ||||
Operadores de consulta de elemento | $exists | |||
$type | ||||
Operadores de consulta de avaliação | $expr | |||
$jsonSchema | ||||
$mod | ||||
$regex | ||||
$text | ||||
$where | ||||
Operadores geoespaciais | $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 projeção | $ | |||
$elemMatch | ||||
$meta | ||||
$slice | ||||
Operadores de consulta diversos | $comment | |||
$rand | ||||
$natural | ||||
Operadores de atualização de campo | $currentDate | |||
$inc | ||||
$min | ||||
$max | ||||
$mul | ||||
$rename | ||||
$set | ||||
$setOnInsert | ||||
$unset | ||||
Operadores de atualização de matriz | $ | |||
$[] | ||||
$[identifier] | ||||
$addToSet | ||||
$pop | ||||
$pull | ||||
$push | ||||
$pullAll | ||||
$each | ||||
$position | ||||
$slice | ||||
$sort | ||||
Operadores de atualização bit a bit | $bit | |||
Operadores de expressão aritmética | $abs | |||
$add | ||||
$ceil | ||||
$divide | ||||
$exp | ||||
$floor | ||||
$ln | ||||
$log | ||||
$log10 | ||||
$mod | ||||
$multiply | ||||
$pow | ||||
$round | ||||
$sqrt | ||||
$subtract | ||||
$trunc | ||||
Operadores de expressão 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 expressão booliana | $and | |||
$not | ||||
$or | ||||
Operadores de expressão de comparação | $cmp | |||
$eq | ||||
$gt | ||||
$gte | ||||
$lt | ||||
$lte | ||||
$ne | ||||
Operadores de expressão de agregação personalizada | Ainda não há suporte. | |||
Operadores de tamanho de dados | $bsonSize | |||
$binarySize | ||||
Operadores de expressão de data | $dateAdd | |||
$dateDiff | ||||
$dateFromParts | ||||
$dateFromString | ||||
$dateSubtract | ||||
$dateToParts | ||||
$dateToString | ||||
$dateTrunc | ||||
$dayOfMonth | ||||
$dayOfWeek | ||||
$dayOfYear | ||||
$hour | ||||
$isoDayOfWeek | ||||
$isoWeek | ||||
$isoWeekYear | ||||
$millisecond | ||||
$minute | ||||
$month | ||||
$second | ||||
$toDate | ||||
$week | ||||
$year | ||||
Operador de expressão literal | $literal | |||
Operadores diversos | $getField | |||
$rand | ||||
$sampleRate | ||||
Operadores de expressão de objeto | $mergeObjects | |||
$objectToArray | ||||
$setField | ||||
Definir operadores de expressão | $allElementsTrue | |||
$anyElementTrue | ||||
$setDifference | ||||
$setEquals | ||||
$setIntersection | ||||
$setIsSubset | ||||
$setUnion | ||||
Operadores de expressão de cadeia de caracteres | $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 expressão de texto | $meta | |||
Operadores de expressão de carimbo de data/hora | $tsIncrement | |||
$tsSecond | ||||
Operadores de expressão trigonometria | $sin | |||
$cos | ||||
$tan | ||||
$asin | ||||
$acos | ||||
$atan | ||||
$atan2 | ||||
$asinh | ||||
$acosh | ||||
$atanh | ||||
$sinh | ||||
$cosh | ||||
$tanh | ||||
$degreesToRadians | ||||
$radiansToDegrees | ||||
Operadores de expressão de tipo | $convert | |||
$isNumber | ||||
$toBool | ||||
$toDate | ||||
$toDecimal | ||||
$toDouble | ||||
$toInt | ||||
$toLong | ||||
$toObjectId | ||||
$toString | ||||
$type | ||||
Acumuladores ($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 (em outros estágios) | $avg | |||
$first | ||||
$last | ||||
$max | ||||
$median | ||||
$min | ||||
$percentile | ||||
$stdDevPop | ||||
$stdDevSamp | ||||
$sum | ||||
Operadores de expressão variável | $let | |||
Operadores de janela | $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 expressão condicional | $cond | |||
$ifNull | ||||
$switch | ||||
Estágios de pipeline de agregação | $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 | ||||
Variáveis em expressões de agregação | AGORA | |||
ROOT | ||||
REMOVE | ||||
CURRENT | ||||
CLUSTER_TIME | ||||
DESCEND | ||||
PRUNE | ||||
KEEP | ||||
SEARCH_META | ||||
USER_ROLES |
Índices e propriedades de índice
O Azure Cosmos DB for MongoDB vCore dá suporte aos seguintes índices e propriedades de índice:
Observação
A criação de um índice exclusivo obtém um bloqueio exclusivo na coleção por toda a duração do processo de compilação. Isso bloqueia as operações de leitura e gravação na coleção até que a operação seja concluída.
Índices
Comando | Com suporte |
Índice de campo único | |
Índice composto | |
Índice de várias chaves | |
Índice de texto | |
Índice curinga | |
Índice geoespacial | |
Índice de hash | |
Índice de Vetor (disponível apenas no Cosmos DB) | Sim, com a pesquisa de vetor |
Propriedades de índice
Comando | Com suporte |
TTL | |
Exclusivo | |
Partial | |
Não diferencia maiúsculas de minúsculas | |
Esparsos | |
Tela de fundo |