Compatibilité et prise en charge des fonctionnalités MongoDB avec Azure Cosmos DB for MongoDB vCore
S’APPLIQUE À : MongoDB vCore
Azure Cosmos DB for MongoDB vCore vous permet d’expérimenter les avantages connus de MongoDB tout en accédant aux fonctionnalités d’entreprise avancées qu’offre Azure Cosmos DB. Il garantit la compatibilité en suivant le protocole filaire MongoDB, ce qui vous permet de tirer parti des pilotes clients, SDK et autres outils existants que vous connaissez déjà.
Prise en charge de protocole
Les opérateurs pris en charge, ainsi que les limitations ou exceptions sont répertoriés ici. Les pilotes clients comprenant ces protocoles doivent pouvoir se connecter à Azure Cosmos DB for MongoDB. Lorsque vous créez des clusters Azure Cosmos DB for MongoDB vCore, le point de terminaison est au format *.mongocluster.cosmos.azure.com
.
Prise en charge du langage de requêtes
Azure Cosmos DB for MongoDB permet la prise en charge complète des constructions de langage de requête MongoDB. Vous trouverez ci-dessous la liste détaillée des commandes, opérateurs, phases et options de base de données actuellement pris en charge.
Remarque
Cet article liste uniquement les commandes de serveur prises en charge et exclut les fonctions wrapper côté client. Les fonctions wrapper côté client telles que deleteMany()
et updateMany()
utilisent en interne les commandes de serveur delete()
et update()
. Les fonctions utilisant des commandes de serveur prises en charge sont compatibles avec Azure Cosmos DB for MongoDB.
Commandes de base de données
Azure Cosmos DB for MongoDB vCore prend en charge les commandes de base de données suivantes :
Catégorie | Interface | Fonctionnalité | ||
v5.0 | v6.0 | v7.0 | ||
Commandes d’agrégation | aggregate | |||
count | ||||
distinct | ||||
mapReduce | Déconseillé dans MongoDB 5.0 | |||
Commandes d’authentification | authenticate | |||
getnonce | Déconseillé dans MongoDB 4.0 | |||
logout | Déconseillé dans MongoDB 5.0 | |||
Commandes géospatiales | geoSearch | Déconseillé dans MongoDB 5.0 | ||
Commandes du cache du plan de requête | ||||
Commandes administratives | cloneCollectionAsCapped | Non, les collections plafonnées ne sont pas prises en charge actuellement. | ||
collMod | ||||
compact | ||||
convertToCapped | No. Les collections limitées ne sont actuellement pas prises en charge. | |||
create | ||||
createIndexes | ||||
currentOp | ||||
drop | ||||
dropDatabase | ||||
dropConnections | En tant que service PaaS, cela sera managé par Azure. | |||
dropIndexes | ||||
filemd5 | ||||
fsync | En tant que service PaaS, cela sera managé par Azure. | |||
fsyncUnlock | En tant que service PaaS, cela sera managé par Azure. | |||
getDefaultRWConcern | ||||
getClusterParameter | ||||
getParameter | ||||
killCursors | ||||
killOp | ||||
listCollections | ||||
listDatabases | ||||
listIndexes | ||||
logRotate | En tant que service PaaS, cela sera managé par Azure. | |||
reIndex | ||||
renameCollection | ||||
rotateCertificates | En tant que service PaaS, cela sera managé par Azure. | |||
setFeatureCompatibilityVersion | En tant que service PaaS, cela sera managé par Azure. | |||
setIndexCommitQuorum | ||||
setParameter | ||||
setDefaultRWConcern | ||||
shutdown | En tant que service PaaS, cela sera managé par Azure. | |||
Commandes de gestion d’utilisateurs et de rôles | Non prises en charge aujourd’hui, mais seront disponibles via Azure Active Directory à l’avenir. | |||
Commandes de réplication | Azure gère la réplication, ce qui évite aux clients d’avoir à effectuer une réplication manuelle. | |||
Commandes de partitionnement | enableSharding | |||
isdbgrid | ||||
reshardCollection | ||||
shardCollection | ||||
unsetSharding | Déconseillé dans MongoDB 5.0 | |||
addShard | En tant qu’offre PaaS (Platform-as-a-Service), Azure s’occupe de la gestion des partitions et du rééquilibrage. Les utilisateurs doivent uniquement spécifier la stratégie de partitionnement pour les collections et Azure gère le reste. | |||
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 | ||||
Commandes d’opérations de requête et d’écriture | change streams | |||
delete | ||||
find | ||||
findAndModify | ||||
getLastError | Déconseillé dans MongoDB 5.1 | |||
getMore | ||||
insert | ||||
resetError | Déconseillé dans MongoDB 5.0 | |||
update | ||||
Commandes de session | abortTransaction | |||
commitTransaction | ||||
endSessions | ||||
killAllSessions | ||||
killAllSessionsByPattern | ||||
killSessions | ||||
refreshSessions | ||||
startSession | ||||
Commandes de diagnostic | availableQueryOptions | |||
buildInfo | ||||
collStats | ||||
connPoolStats | ||||
connectionStatus | ||||
dataSize | ||||
dbHash | ||||
dbStats | ||||
driverOIDTest | En tant que service PaaS, cela sera managé par Azure. | |||
explain | ||||
features | En tant que service PaaS, cela sera managé par Azure. | |||
getCmdLineOpts | ||||
getLog | ||||
hello | ||||
hostInfo | ||||
_isSelf | ||||
listCommands | ||||
lockInfo | ||||
netstat | ||||
ping | ||||
profile | En tant que service PaaS, cela sera managé par Azure. | |||
serverStatus | ||||
shardConnPoolStats | Déconseillé dans MongoDB 5.0 | |||
top | ||||
validate | ||||
whatsmyuri | ||||
Commandes d’audit des événements système | logApplicationMessage |
Opérateurs
Voici la liste des opérateurs actuellement pris en charge sur Azure Cosmos DB for MongoDB vCore :
Remarque
AvgObjsize – taille dans « collStats » et « dbStats » ne fonctionne qu’avec des documents dont la taille est inférieure à 2 Ko.
Catégorie | Interface | Fonctionnalité | ||
v5.0 | v6.0 | v7.0 | ||
Opérateurs de requête de comparaison | $eq | |||
$gt | ||||
$gte | ||||
$in | ||||
$lt | ||||
$lte | ||||
$ne | ||||
$nin | ||||
Opérateurs de requête logique | $and | |||
$not | ||||
$nor | ||||
$or | ||||
Opérateurs de requête d’élément | $exists | |||
$type | ||||
Opérateurs de requête d’évaluation | $expr | |||
$jsonSchema | ||||
$mod | ||||
$regex | ||||
$text | ||||
$where | ||||
Opérateurs géospatiaux | $geoIntersects | |||
$geoWithin | ||||
$box | ||||
$center | ||||
$centerSphere | ||||
$geometry | ||||
$maxDistance | ||||
$minDistance | ||||
$polygon | ||||
$near | ||||
$nearSphere | ||||
Opérateurs de requête de tableau | $all | |||
$elemMatch | ||||
$size | ||||
Opérateurs de requête au niveau du bit | $bitsAllClear | |||
$bitsAllSet | ||||
$bitsAnyClear | ||||
$bitsAnySet | ||||
Opérateurs de projection | $ | |||
$elemMatch | ||||
$meta | ||||
$slice | ||||
Opérateurs de requête divers | $comment | |||
$rand | ||||
$natural | ||||
Opérateurs de mise à jour de champ | $currentDate | |||
$inc | ||||
$min | ||||
$max | ||||
$mul | ||||
$rename | ||||
$set | ||||
$setOnInsert | ||||
$unset | ||||
Opérateurs de mise à jour de tableau | $ | |||
$[] | ||||
$[identifier] | ||||
$addToSet | ||||
$pop | ||||
$pull | ||||
$push | ||||
$pullAll | ||||
$each | ||||
$position | ||||
$slice | ||||
$sort | ||||
Opérateurs de mise à jour au niveau du bit | $bit | |||
Opérateurs d’expression arithmétique | $abs | |||
$add | ||||
$ceil | ||||
$divide | ||||
$exp | ||||
$floor | ||||
$ln | ||||
$log | ||||
$log10 | ||||
$mod | ||||
$multiply | ||||
$pow | ||||
$round | ||||
$sqrt | ||||
$subtract | ||||
$trunc | ||||
Opérateurs d’expression de tableau | $arrayElemAt | |||
$arrayToObject | ||||
$concatArrays | ||||
$filter | ||||
$firstN | ||||
$in | ||||
$indexOfArray | ||||
$isArray | ||||
$lastN | ||||
$map | ||||
$maxN | ||||
$minN | ||||
$objectToArray | ||||
$range | ||||
$reduce | ||||
$reverseArray | ||||
$size | ||||
$slice | ||||
$sortArray | ||||
$zip | ||||
Opérateurs au niveau du bit | $bitAnd | |||
$bitNot | ||||
$bitOr | ||||
$bitXor | ||||
Opérateurs d’expression booléenne | $and | |||
$not | ||||
$or | ||||
Opérateurs d’expression de comparaison | $cmp | |||
$eq | ||||
$gt | ||||
$gte | ||||
$lt | ||||
$lte | ||||
$ne | ||||
Opérateurs d’expression d’agrégation personnalisée | Pas encore pris en charge. | |||
Opérateurs de taille de données | $bsonSize | |||
$binarySize | ||||
Opérateurs d’expression de date | $dateAdd | |||
$dateDiff | ||||
$dateFromParts | ||||
$dateFromString | ||||
$dateSubtract | ||||
$dateToParts | ||||
$dateToString | ||||
$dateTrunc | ||||
$dayOfMonth | ||||
$dayOfWeek | ||||
$dayOfYear | ||||
$hour | ||||
$isoDayOfWeek | ||||
$isoWeek | ||||
$isoWeekYear | ||||
$millisecond | ||||
$minute | ||||
$month | ||||
$second | ||||
$toDate | ||||
$week | ||||
$year | ||||
Opérateur d’expression littérale | $literal | |||
Opérateurs divers | $getField | |||
$rand | ||||
$sampleRate | ||||
Opérateurs d’expression d’objet | $mergeObjects | |||
$objectToArray | ||||
$setField | ||||
Opérateurs d’expression d’ensemble | $allElementsTrue | |||
$anyElementTrue | ||||
$setDifference | ||||
$setEquals | ||||
$setIntersection | ||||
$setIsSubset | ||||
$setUnion | ||||
Opérateurs d’expression de chaîne | $concat | |||
$dateFromString | ||||
$dateToString | ||||
$indexOfBytes | ||||
$indexOfCP | ||||
$ltrim | ||||
$regexFind | ||||
$regexFindAll | ||||
$regexMatch | ||||
$replaceOne | ||||
$replaceAll | ||||
$rtrim | ||||
$split | ||||
$strLenBytes | ||||
$strLenCP | ||||
$strcasecmp | ||||
$substr | ||||
$substrBytes | ||||
$substrCP | ||||
$toLower | ||||
$toString | ||||
$trim | ||||
$toUpper | ||||
Opérateur d’expression de texte | $meta | |||
Opérateurs d’expression d’horodatage | $tsIncrement | |||
$tsSecond | ||||
Opérateurs d’expression trigonométrique | $sin | |||
$cos | ||||
$tan | ||||
$asin | ||||
$acos | ||||
$atan | ||||
$atan2 | ||||
$asinh | ||||
$acosh | ||||
$atanh | ||||
$sinh | ||||
$cosh | ||||
$tanh | ||||
$degreesToRadians | ||||
$radiansToDegrees | ||||
Opérateurs d’expression de type | $convert | |||
$isNumber | ||||
$toBool | ||||
$toDate | ||||
$toDecimal | ||||
$toDouble | ||||
$toInt | ||||
$toLong | ||||
$toObjectId | ||||
$toString | ||||
$type | ||||
Accumulateurs ($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 | ||||
Accumulateurs (dans d’autres phases) | $avg | |||
$first | ||||
$last | ||||
$max | ||||
$median | ||||
$min | ||||
$percentile | ||||
$stdDevPop | ||||
$stdDevSamp | ||||
$sum | ||||
Opérateurs d’expression de variable | $let | |||
Opérateurs de fenêtre | $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 | ||||
Opérateurs d’expression conditionnelle | $cond | |||
$ifNull | ||||
$switch | ||||
Phases des pipelines d’agrégation | $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 dans les expressions d’agrégation | MAINTENANT | |||
ROOT | ||||
REMOVE | ||||
CURRENT | ||||
CLUSTER_TIME | ||||
DESCEND | ||||
PRUNE | ||||
KEEP | ||||
SEARCH_META | ||||
USER_ROLES |
Index et propriétés d’index
Azure Cosmos DB for MongoDB vCore prend en charge les index et propriétés d’index suivants :
Notes
La création d’un index unique reçoit un verrou exclusif au niveau de la collection pendant toute la durée du processus de génération. Cela bloque les opérations de lecture et d’écriture au niveau de la collection jusqu’à la fin de l’opération.
Index
Commande | Prise en charge |
Index à champ unique | |
Index composé | |
Index à plusieurs clés | |
Index de texte | |
Index à caractère générique | |
Index géospatial | |
Index de hachage | |
Index vectoriel (disponible uniquement dans Cosmos DB) | Oui, avec la recherche vectorielle |
Propriétés d’index
Commande | Prise en charge |
TTL | |
Unique | |
Partiel | |
Insensible à la casse | |
Partiellement alloué | |
Arrière-plan |