Compatibilità e supporto delle funzionalità di MongoDB con Azure Cosmos DB for MongoDB vCore
SI APPLICA A: MongoDB vCore
Azure Cosmos DB for MongoDB vCore consente di sperimentare i vantaggi noti di MongoDB durante l'accesso alle funzionalità aziendali avanzate offerte da Azure Cosmos DB. Garantisce la compatibilità seguendo il protocollo di collegamento MongoDB, consentendo di sfruttare driver client, SDK e altri strumenti esistenti con cui si ha già familiarità.
Supporto del protocollo
Gli operatori supportati con i relativi limiti ed eccezioni sono elencati qui. I driver client che identificano questi protocolli dovrebbero essere in grado di collegarsi ad Azure Cosmos DB for MongoDB. Quando si creano cluster vCore di Azure Cosmos DB for MongoDB, l'endpoint è nel formato *.mongocluster.cosmos.azure.com
.
Linguaggi di query supportati
Azure Cosmos DB for MongoDB offre il supporto completo dei costrutti del linguaggio di query MongoDB. Di seguito è possibile trovare l'elenco dettagliato dei comandi, degli operatori, delle fasi e delle opzioni di database attualmente supportati.
Nota
Questo articolo elenca solo i comandi server supportati e non le funzioni wrapper lato client. Le funzioni wrapper lato client come deleteMany()
e updateMany()
utilizzano internamente i comandi server delete()
e update()
. Le funzioni che utilizzano i comandi server supportati sono compatibili con Azure Cosmos DB for MongoDB.
Comandi del database
Azure Cosmos DB for MongoDB vCore supporta i comandi di database seguenti:
Categoria | Comando | Funzionalità | ||
v5.0 | v6.0 | v7.0 | ||
Comandi di aggregazione | Aggregato | |||
count | ||||
distinct | ||||
mapReduce | Deprecato in MongoDB 5.0 | |||
Comandi di autenticazione | authenticate | |||
getnonce | Deprecato in MongoDB 4.0 | |||
logout | Deprecato in MongoDB 5.0 | |||
Comandi geospaziali | geoSearch | Deprecato in MongoDB 5.0 | ||
Comandi della cache dei piani di query | ||||
Comandi amministrativi | cloneCollectionAsCapped | No, attualmente le raccolte con estremità non sono supportate. | ||
collMod | ||||
compact | ||||
convertToCapped | No. Attualmente le raccolte con estremità non sono supportate. | |||
create | ||||
createIndexes | ||||
currentOp | ||||
drop | ||||
dropDatabase | ||||
dropConnections | Come servizio PaaS, questo verrà gestito da Azure. | |||
dropIndexes | ||||
filemd5 | ||||
fsync | Come servizio PaaS, questo verrà gestito da Azure. | |||
fsyncUnlock | Come servizio PaaS, questo verrà gestito da Azure. | |||
getDefaultRWConcern | ||||
getClusterParameter | ||||
getParameter | ||||
killCursors | ||||
killOp | ||||
listCollections | ||||
listDatabases | ||||
listIndexes | ||||
logRotate | Come servizio PaaS, questo verrà gestito da Azure. | |||
reIndex | ||||
renameCollection | ||||
rotateCertificates | Come servizio PaaS, questo verrà gestito da Azure. | |||
setFeatureCompatibilityVersion | Come servizio PaaS, questo verrà gestito da Azure. | |||
setIndexCommitQuorum | ||||
setParameter | ||||
setDefaultRWConcern | ||||
shutdown | Come servizio PaaS, questo verrà gestito da Azure. | |||
Comandi di gestione di utenti e ruoli | Non supportato oggi, ma sarà reso disponibile tramite Azure Active Directory in futuro. | |||
Comandi di replica | Azure gestisce la replica, rimuovendo la necessità per i clienti di replicare manualmente. | |||
Comandi di partizionamento orizzontale | enableSharding | |||
isdbgrid | ||||
reshardCollection | ||||
shardCollection | ||||
unsetSharding | Deprecato in MongoDB 5.0 | |||
addShard | Come offerta PaaS (Platform-as-a-Service), Azure gestisce la gestione delle partizioni e il ribilanciamento. Gli utenti devono specificare solo la strategia di partizionamento orizzontale per le raccolte e Azure gestirà il 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 | ||||
Comandi per le operazioni di query e scrittura | change streams | |||
delete | ||||
find | ||||
findAndModify | ||||
getLastError | Deprecato in MongoDB 5.1 | |||
getMore | ||||
insert | ||||
resetError | Deprecato in MongoDB 5.0 | |||
update | ||||
Comandi di sessione | abortTransaction | |||
commitTransaction | ||||
endSessions | ||||
killAllSessions | ||||
killAllSessionsByPattern | ||||
killSessions | ||||
refreshSessions | ||||
startSession | ||||
Comandi di diagnostica | availableQueryOptions | |||
buildInfo | ||||
collStats | ||||
connPoolStats | ||||
connectionStatus | ||||
dataSize | ||||
dbHash | ||||
dbStats | ||||
driverOIDTest | Come servizio PaaS, questo verrà gestito da Azure. | |||
explain | ||||
features | Come servizio PaaS, questo verrà gestito da Azure. | |||
getCmdLineOpts | ||||
getLog | ||||
hello | ||||
hostInfo | ||||
_isSelf | ||||
listCommands | ||||
lockInfo | ||||
netstat | ||||
ping | ||||
profile | Come servizio PaaS, questo verrà gestito da Azure. | |||
serverStatus | ||||
shardConnPoolStats | Deprecato in MongoDB 5.0 | |||
top | ||||
validate | ||||
whatsmyuri | ||||
Comandi di controllo degli eventi di sistema | logApplicationMessage |
Operatori
Di seguito è riportato l'elenco degli operatori attualmente supportati in Azure Cosmos DB for MongoDB vCore:
Nota
AvgObjsize e le dimensioni in "collStats" e “dbStats” funzionano solo con dimensioni del documento inferiori a 2 KB.
Categoria | Comando | Funzionalità | ||
v5.0 | v6.0 | v7.0 | ||
Operatori di query di confronto | $eq | |||
$gt | ||||
$gte | ||||
$in | ||||
$lt | ||||
$lte | ||||
$ne | ||||
$nin | ||||
Operatori di query logiche | $and | |||
$not | ||||
$nor | ||||
$or | ||||
Operatori di query sugli elementi | $exists | |||
$type | ||||
Operatori di query di valutazione | $expr | |||
$jsonSchema | ||||
$mod | ||||
$regex | ||||
$text | ||||
$where | ||||
Operatori geospaziali | $geoIntersects | |||
$geoWithin | ||||
$box | ||||
$center | ||||
$centerSphere | ||||
$geometry | ||||
$maxDistance | ||||
$minDistance | ||||
$polygon | ||||
$near | ||||
$nearSphere | ||||
Operatori di query su matrici | $all | |||
$elemMatch | ||||
$size | ||||
Operatori di query bit per bit | $bitsAllClear | |||
$bitsAllSet | ||||
$bitsAnyClear | ||||
$bitsAnySet | ||||
Operatori di proiezione | $ | |||
$elemMatch | ||||
$meta | ||||
$slice | ||||
Operatori di query varie | $comment | |||
$rand | ||||
$natural | ||||
Operatori di aggiornamento di campo | $currentDate | |||
$inc | ||||
$min | ||||
$max | ||||
$mul | ||||
$rename | ||||
$set | ||||
$setOnInsert | ||||
$unset | ||||
Operatori di aggiornamento di matrice | $ | |||
$[] | ||||
$[identifier] | ||||
$addToSet | ||||
$pop | ||||
$pull | ||||
$push | ||||
$pullAll | ||||
$each | ||||
$position | ||||
$slice | ||||
$sort | ||||
Operatore di aggiornamento bit per bit | $bit | |||
Operatori di espressioni aritmetiche | $abs | |||
$add | ||||
$ceil | ||||
$divide | ||||
$exp | ||||
$floor | ||||
$ln | ||||
$log | ||||
$log10 | ||||
$mod | ||||
$multiply | ||||
$pow | ||||
$round | ||||
$sqrt | ||||
$subtract | ||||
$trunc | ||||
Operatori di espressioni di matrici | $arrayElemAt | |||
$arrayToObject | ||||
$concatArrays | ||||
$filter | ||||
$firstN | ||||
$in | ||||
$indexOfArray | ||||
$isArray | ||||
$lastN | ||||
$map | ||||
$maxN | ||||
$minN | ||||
$objectToArray | ||||
$range | ||||
$reduce | ||||
$reverseArray | ||||
$size | ||||
$slice | ||||
$sortArray | ||||
$zip | ||||
Operatori bit per bit | $bitAnd | |||
$bitNot | ||||
$bitOr | ||||
$bitXor | ||||
Operatori di espressioni booleane | $and | |||
$not | ||||
$or | ||||
Operatori di espressioni di confronto | $cmp | |||
$eq | ||||
$gt | ||||
$gte | ||||
$lt | ||||
$lte | ||||
$ne | ||||
Operatori di espressioni di aggregazione personalizzati | Non ancora supportato. | |||
Operatori di dimensioni dati | $bsonSize | |||
$binarySize | ||||
Operatori di espressioni di date | $dateAdd | |||
$dateDiff | ||||
$dateFromParts | ||||
$dateFromString | ||||
$dateSubtract | ||||
$dateToParts | ||||
$dateToString | ||||
$dateTrunc | ||||
$dayOfMonth | ||||
$dayOfWeek | ||||
$dayOfYear | ||||
$hour | ||||
$isoDayOfWeek | ||||
$isoWeek | ||||
$isoWeekYear | ||||
$millisecond | ||||
$minute | ||||
$month | ||||
$second | ||||
$toDate | ||||
$week | ||||
$year | ||||
Operatori di espressioni letterali | $literal | |||
Operatori vari | $getField | |||
$rand | ||||
$sampleRate | ||||
Operatori di espressioni di oggetti | $mergeObjects | |||
$objectToArray | ||||
$setField | ||||
Operatori di espressioni di impostazione | $allElementsTrue | |||
$anyElementTrue | ||||
$setDifference | ||||
$setEquals | ||||
$setIntersection | ||||
$setIsSubset | ||||
$setUnion | ||||
Operatori di espressioni stringa | $concat | |||
$dateFromString | ||||
$dateToString | ||||
$indexOfBytes | ||||
$indexOfCP | ||||
$ltrim | ||||
$regexFind | ||||
$regexFindAll | ||||
$regexMatch | ||||
$replaceOne | ||||
$replaceAll | ||||
$rtrim | ||||
$split | ||||
$strLenBytes | ||||
$strLenCP | ||||
$strcasecmp | ||||
$substr | ||||
$substrBytes | ||||
$substrCP | ||||
$toLower | ||||
$toString | ||||
$trim | ||||
$toUpper | ||||
Operatori di espressioni di testo | $meta | |||
Operatori di espressioni timestamp | $tsIncrement | |||
$tsSecond | ||||
Operatori di espressioni di trigonometria | $sin | |||
$cos | ||||
$tan | ||||
$asin | ||||
$acos | ||||
$atan | ||||
$atan2 | ||||
$asinh | ||||
$acosh | ||||
$atanh | ||||
$sinh | ||||
$cosh | ||||
$tanh | ||||
$degreesToRadians | ||||
$radiansToDegrees | ||||
Operatori di espressioni di tipo | $convert | |||
$isNumber | ||||
$toBool | ||||
$toDate | ||||
$toDecimal | ||||
$toDouble | ||||
$toInt | ||||
$toLong | ||||
$toObjectId | ||||
$toString | ||||
$type | ||||
Accumulatori ($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 | ||||
Accumulatori (in altre fasi) | $avg | |||
$first | ||||
$last | ||||
$max | ||||
$median | ||||
$min | ||||
$percentile | ||||
$stdDevPop | ||||
$stdDevSamp | ||||
$sum | ||||
Operatori di espressioni di variabile | $let | |||
Operatori di finestra | $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 | ||||
Operatori di espressioni condizionali | $cond | |||
$ifNull | ||||
$switch | ||||
Fasi della pipeline di aggregazione | $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 | ||||
Variabili nelle espressioni di aggregazione | NOW | |||
ROOT | ||||
REMOVE | ||||
CURRENT | ||||
CLUSTER_TIME | ||||
DESCEND | ||||
PRUNE | ||||
KEEP | ||||
SEARCH_META | ||||
USER_ROLES |
Indici e proprietà degli indici
Azure Cosmos DB for MongoDB vCore supporta gli indici e le proprietà di indice seguenti:
Nota
La creazione di un indice univoco ottiene un blocco esclusivo sulla raccolta per l'intera durata del processo di compilazione. Questo blocca le operazioni di lettura e scrittura nella raccolta fino al completamento dell'operazione.
Indici
Comando | Supportata |
Single Field Index | |
Compound Index | |
Multikey Index | |
Text Index | |
Indice dei caratteri jolly | |
Indice geospaziale | |
Hashed Index | |
Indice vettoriale (disponibile solo in Cosmos DB) | Sì, con ricerca vettoriale |
Proprietà degli indici
Comando | Supportata |
TTL | |
Unica | |
Parziale | |
Case Insensitive | |
Sparse | |
Background |