Compatibilidade do MongoDB e suporte a recursos com o Azure Cosmos DB para MongoDB vCore
APLICA-SE A: MongoDB vCore
O Azure Cosmos DB para MongoDB vCore permite que você experimente as vantagens familiares do MongoDB ao acessar os recursos empresariais aprimorados oferecidos pelo Azure Cosmos DB. Ele garante a compatibilidade seguindo o protocolo de conexão MongoDB, permitindo que você aproveite os drivers de cliente existentes, SDKs e outras ferramentas com as quais você já está familiarizado.
Suporte de protocolo
Os operadores suportados e quaisquer limitações ou exceções estão listados aqui. Qualquer driver de cliente que compreenda esses protocolos deve ser capaz de se conectar ao Azure Cosmos DB para MongoDB. Quando você cria o Azure Cosmos DB para clusters vCore do MongoDB, o ponto de extremidade está no formato *.mongocluster.cosmos.azure.com
.
Suporte à linguagem de consulta
O Azure Cosmos DB para MongoDB fornece suporte abrangente para construções de linguagem de consulta MongoDB. Abaixo, você pode encontrar a lista detalhada de comandos, operadores, estágios e opções de banco de dados atualmente suportados.
Nota
Este artigo lista apenas os comandos de servidor suportados 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 delete()
comandos e update()
servidor. As funções que utilizam comandos de servidor suportados são compatíveis com o Azure Cosmos DB para MongoDB.
Comandos da base de dados
O Azure Cosmos DB para MongoDB vCore suporta os seguintes comandos de banco de dados:
Categoria | Comando | Funcionalidade | ||
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 | Preterido 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 | Não, coleções limitadas não são suportadas no momento. | ||
collMod | ||||
compact | ||||
convertToCapped | Não. No momento, não há suporte para coleções limitadas. | |||
create | ||||
createIndexes | ||||
currentOp | ||||
drop | ||||
dropDatabase | ||||
dropConnections | Como um serviço PaaS, isso será gerenciado pelo Azure. | |||
dropIndexes | ||||
filemd5 | ||||
fsync | Como um serviço PaaS, isso será gerenciado pelo Azure. | |||
fsyncUnlock | Como um serviço PaaS, isso será gerenciado pelo Azure. | |||
getDefaultRWConcern | ||||
getClusterParameter | ||||
getParameter | ||||
killCursors | ||||
killOp | ||||
listCollections | ||||
listDatabases | ||||
listIndexes | ||||
logRotate | Como um serviço PaaS, isso será gerenciado pelo Azure. | |||
reIndex | ||||
renameCollection | ||||
rotateCertificates | Como um serviço PaaS, isso será gerenciado pelo Azure. | |||
setFeatureCompatibilityVersion | Como um serviço PaaS, isso será gerenciado pelo Azure. | |||
setIndexCommitQuorum | ||||
setParameter | ||||
setDefaultRWConcern | ||||
shutdown | Como um serviço PaaS, isso será gerenciado pelo Azure. | |||
Usuário & Comandos de gerenciamento de função | Não tem suporte hoje, mas será disponibilizado por meio do Azure Ative Directory no futuro. | |||
Comandos de replicação | O Azure gerencia a replicação, eliminando a necessidade de os clientes replicarem manualmente. | |||
Comandos de compartilhamento | enableSharding | |||
isdbgrid | ||||
reshardCollection | ||||
shardCollection | ||||
unsetSharding | Preterido no MongoDB 5.0 | |||
addShard | Como uma oferta de plataforma como serviço (PaaS), 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 tratará do 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 operação de consulta e gravação | change streams | |||
delete | ||||
find | ||||
findAndModify | ||||
getLastError | Preterido 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 PaaS, isso será gerenciado pelo Azure. | |||
explain | ||||
features | Como um serviço PaaS, isso será gerenciado pelo Azure. | |||
getCmdLineOpts | ||||
getLog | ||||
hello | ||||
hostInfo | ||||
_isSelf | ||||
listCommands | ||||
lockInfo | ||||
netstat | ||||
ping | ||||
profile | Como um serviço 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
Abaixo está a lista de operadores atualmente suportados no Azure Cosmos DB para MongoDB vCore:
Nota
AvgObjsize e tamanho em "collStats" & "dbStats" funciona apenas com tamanho de documento inferior a 2KB.
Categoria | Comando | Funcionalidade | ||
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 Bitwise | $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 Bitwise | $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 Bitwise | $bitAnd | |||
$bitNot | ||||
$bitOr | ||||
$bitXor | ||||
Operadores de expressão booleana | $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 suportado. | |||
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 de 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 (noutras fases) | $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 do 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 para MongoDB vCore dá suporte aos seguintes índices e propriedades de índice:
Nota
A criação de um índice exclusivo obtém um bloqueio exclusivo na coleção durante toda a duração do processo de compilação. Isso bloqueia operações de leitura e gravação na coleção até que a operação seja concluída.
Índices
Comando | Suportado |
Índice de campo único | |
Índice composto | |
Índice Multikey | |
Índice de texto | |
Índice curinga | |
Índice Geoespacial | |
Índice de Hash | |
Índice vetorial (disponível apenas no Cosmos DB) | Sim, com pesquisa vetorial |
Propriedades do índice
Comando | Suportado |
TTL | |
Exclusivo | |
Parcial | |
Insensível a maiúsculas e minú | |
Dispersos | |
Fundo |