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 | Supportata |
Comandi di aggregazione | Aggregato | Sì |
count | Sì | |
distinct | Sì | |
mapReduce | Deprecato | |
Comandi di autenticazione | authenticate | Sì |
getnonce | Sì | |
logout | Sì | |
Comandi geospaziali | geoSearch | Deprecato |
Comandi della cache dei piani di query | No | |
Comandi amministrativi | cloneCollectionAsCapped | No. Attualmente le raccolte con estremità non sono supportate. |
collMod | Parziale | |
compact | No | |
connPoolSync | Deprecato | |
convertToCapped | No. Attualmente le raccolte con estremità non sono supportate. | |
create | Parziale | |
createIndexes | Sì | |
currentOp | Sì | |
drop | Sì | |
dropDatabase | Sì | |
dropConnections | Come servizio PaaS, questo verrà gestito da Azure. | |
dropIndexes | Sì | |
filemd5 | No | |
fsync | Come servizio PaaS, questo verrà gestito da Azure. | |
fsyncUnlock | Come servizio PaaS, questo verrà gestito da Azure. | |
getDefaultRWConcern | Sì | |
getClusterParameter | No | |
getParameter | Sì | |
killCursors | Sì | |
killOp | Sì | |
listCollections | Sì | |
listDatabases | Sì | |
listIndexes | Sì | |
logRotate | Come servizio PaaS, questo verrà gestito da Azure. | |
reIndex | Sì | |
renameCollection | Sì | |
rotateCertificates | Come servizio PaaS, questo verrà gestito da Azure. | |
setFeatureCompatibilityVersion | Come servizio PaaS, questo verrà gestito da Azure. | |
setIndexCommitQuorum | No | |
setParameter | Parziale | |
setDefaultRWConcern | No | |
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 | Sì |
isdbgrid | Sì | |
reshardCollection | Sì | |
shardCollection | Sì | |
unsetSharding | Deprecato | |
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 | ||
reshardCollection | No | |
Comandi per le operazioni di query e scrittura | change streams | No |
delete | Sì | |
find | Sì | |
findAndModify | Sì | |
getLastError | Sì | |
getMore | Parziale | |
insert | Sì | |
resetError | Deprecato | |
update | Sì | |
Comandi di sessione | abortTransaction | Sì |
commitTransaction | Sì | |
endSessions | Sì | |
killAllSessions | No | |
killAllSessionsByPattern | No | |
killSessions | Sì | |
refreshSessions | No | |
startSession | Sì | |
Comandi di diagnostica | availableQueryOptions | No |
buildInfo | Sì | |
collStats | Sì | |
connPoolStats | No | |
connectionStatus | Parziale | |
dataSize | No | |
dbHash | No | |
dbStats | Sì | |
driverOIDTest | Come servizio PaaS, questo verrà gestito da Azure. | |
explain | Sì | |
features | Come servizio PaaS, questo verrà gestito da Azure. | |
getCmdLineOpts | Sì | |
getLog | Sì | |
hostInfo | Parziale | |
_isSelf | No | |
listCommands | Sì | |
lockInfo | No | |
netstat | No | |
ping | Sì | |
profile | Come servizio PaaS, questo verrà gestito da Azure. | |
serverStatus | Sì | |
shardConnPoolStats | Deprecato | |
top | No | |
validate | Sì | |
whatsmyuri | Sì | |
Comandi di controllo degli eventi di sistema | logApplicationMessage | No |
Operatori
Di seguito è riportato l'elenco degli operatori attualmente supportati in Azure Cosmos DB for MongoDB vCore:
Nota
L'aggregazione $lookup
non supporta ancora l'uso di espressioni di variabile tramite "let".
AvgObjsize e le dimensioni in "collStats" funzionano solo con dimensioni del documento inferiori a 2 KB.
Categoria | Operator | Supportata |
Operatori di query di confronto | $eq | Sì |
$gt | Sì | |
$gte | Sì | |
$in | Sì | |
$lt | Sì | |
$lte | Sì | |
$ne | Sì | |
$nin | Sì | |
Operatori di query logiche | $and | Sì |
$not | Sì | |
$nor | Sì | |
$or | Sì | |
Operatori di query sugli elementi | $exists | Sì |
$type | Sì | |
Operatori di query di valutazione | $expr | Sì |
$jsonSchema | No | |
$mod | Sì | |
$regex | Sì | |
$text | Sì | |
$where | No | |
Operatori geospaziali | In anteprima privata* | |
Operatori di query su matrici | $all | Sì |
$elemMatch | Sì | |
$size | Sì | |
Operatori di query bit per bit | $bitsAllClear | Sì |
$bitsAllSet | Sì | |
$bitsAnyClear | Sì | |
$bitsAnySet | Sì | |
Operatori di proiezione | $ | Sì |
$elemMatch | Sì | |
$meta | Sì | |
$slice | Sì | |
Operatori di query varie | $comment | No |
$rand | Sì | |
$natural | No | |
Operatori di aggiornamento di campo | $currentDate | Sì |
$inc | Sì | |
$min | Sì | |
$max | Sì | |
$mul | Sì | |
$rename | Sì | |
$set | Sì | |
$setOnInsert | Sì | |
$unset | Sì | |
Operatori di aggiornamento di matrice | $ | Sì |
$[] | Sì | |
$[identifier] | Sì | |
$addToSet | Sì | |
$pop | Sì | |
$pull | Sì | |
$push | Sì | |
$pullAll | Sì | |
$each | Sì | |
$position | Sì | |
$slice | Sì | |
$sort | Sì | |
Operatore di aggiornamento bit per bit | $bit | Sì |
Operatori di espressioni aritmetiche | $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ì | |
Operatori di espressioni di matrici | $arrayElemAt | Sì |
$arrayToObject | Sì | |
$concatArrays | Sì | |
$filter | Sì | |
$firstN | Sì | |
$in | Sì | |
$indexOfArray | Sì | |
$isArray | Sì | |
$lastN | Sì | |
$map | Sì | |
$maxN | No | |
$minN | No | |
$objectToArray | Sì | |
$range | Sì | |
$reduce | Sì | |
$reverseArray | Sì | |
$size | Sì | |
$slice | Sì | |
$sortArray | No | |
$zip | No | |
Operatori bit per bit | $bitAnd | Sì |
$bitNot | Sì | |
$bitOr | Sì | |
$bitXor | Sì | |
Operatori di espressioni booleane | $and | Sì |
$not | Sì | |
$or | Sì | |
Operatori di espressioni di confronto | $cmp | Sì |
$eq | Sì | |
$gt | Sì | |
$gte | Sì | |
$lt | Sì | |
$lte | Sì | |
$ne | Sì | |
Operatori di espressioni di aggregazione personalizzati | Non supportato. | |
Operatori di dimensioni dati | $bsonSize | Sì |
$binarySize | Sì | |
Operatori di espressioni di date | $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ì | |
Operatori di espressioni letterali | $literal | Sì |
Operatori vari | $getField | No |
$rand | Sì | |
$sampleRate | No | |
Operatori di espressioni di oggetti | $mergeObjects | Sì |
$objectToArray | Sì | |
$setField | Sì | |
Operatori di espressioni di impostazione | $allElementsTrue | Sì |
$anyElementTrue | Sì | |
$setDifference | Sì | |
$setEquals | Sì | |
$setIntersection | Sì | |
$setIsSubset | Sì | |
$setUnion | Sì | |
Operatori di espressioni stringa | $concat | Sì |
$dateFromString | No | |
$dateToString | Sì | |
$indexOfBytes | Sì | |
$indexOfCP | Sì | |
$ltrim | Sì | |
$regexFind | Sì | |
$regexFindAll | Sì | |
$regexMatch | Sì | |
$replaceOne | Sì | |
$replaceAll | Sì | |
$rtrim | Sì | |
$split | Sì | |
$strLenBytes | Sì | |
$strLenCP | Sì | |
$strcasecmp | Sì | |
$substr | Sì | |
$substrBytes | Sì | |
$substrCP | Sì | |
$toLower | Sì | |
$toString | Sì | |
$trim | Sì | |
$toUpper | Sì | |
Operatori di espressioni di testo | $meta | Sì |
Operatori di espressioni timestamp | Non supportato. | |
Operatori di espressioni di trigonometria | Non supportato. | |
Operatori di espressioni di tipo | $convert | Sì |
$isNumber | Sì | |
$toBool | Sì | |
$toDate | Sì | |
$toDecimal | Sì | |
$toDouble | Sì | |
$toInt | Sì | |
$toLong | Sì | |
$toObjectId | Sì | |
$toString | Sì | |
$type | Sì | |
Accumulatori ($group, $bucket, $bucketAuto, $setWindowFields) | $accumulator | No |
$addToSet | No | |
$avg | Sì | |
$bottom | No | |
$bottomN | No | |
$count | Sì | |
$first | Sì | |
$firstN | Sì | |
$last | Sì | |
$lastN | Sì | |
$max | Sì | |
$maxN | No | |
$median | No | |
$mergeObjects | No | |
$min | Sì | |
$percentile | No | |
$push | No | |
$stdDevPop | No | |
$stdDevSamp | No | |
$sum | Sì | |
$top | No | |
$topN | No | |
Accumulatori (in altre fasi) | $avg | No |
$first | Sì | |
$last | Sì | |
$max | No | |
$median | No | |
$min | No | |
$percentile | No | |
$stdDevPop | No | |
$stdDevSamp | No | |
$sum | No | |
Operatori di espressioni di variabile | Non supportato. | |
Operatori di finestra | Non supportato. | |
Operatori di espressioni condizionali | $cond | Sì |
$ifNull | Sì | |
$switch | Sì | |
Fasi della pipeline di aggregazione | $addFields | Sì |
$bucket | No | |
$bucketAuto | No | |
$changeStream | No | |
$changeStreamSplitLargeEvent | No | |
$collStats | Sì | |
$count | Sì | |
$densify | No | |
$documents | No | |
$facet | Sì | |
$fill | No | |
$geoNear | No | |
$graphLookup | Sì | |
$group | Sì | |
$indexStats | Sì | |
$limit | Sì | |
$listSampledQueries | No | |
$listSearchIndexes | No | |
$listSessions | No | |
$lookup | Sì | |
$match | Sì | |
$merge | No | |
$out | No | |
$planCacheStats | No | |
$project | Sì | |
$redact | No | |
$replaceRoot | Sì | |
$replaceWith | Sì | |
$sample | Sì | |
$search | Sì | |
$searchMeta | Sì | |
$set | Sì | |
$setWindowFields | No | |
$skip | Sì | |
$sort | Sì | |
$sortByCount | Sì | |
$unionWith | No | |
$unset | Sì | |
$unwind | Sì | |
$shardedDataDistribution | No | |
$changeStream | No | |
$currentOp | Sì | |
$listLocalSessions | No | |
$documents | No |
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 | Sì |
Compound Index | Sì |
Multikey Index | Sì |
Text Index | Sì |
Indice geospaziale | In anteprima privata* |
Hashed Index | Sì |
Indice vettoriale (disponibile solo in Cosmos DB) | Sì, con ricerca vettoriale |
Proprietà degli indici
Comando | Supportata |
TTL | Sì |
Unica | Sì |
Parziale | Sì |
Case Insensitive | No |
Sparse | Sì |
Background | Sì |