Поделиться через


Поддержка совместимости и компонентов MongoDB с помощью Azure Cosmos DB для виртуальных ядер MongoDB

Область применения: Виртуальные ядра MongoDB

Azure Cosmos DB для виртуальных ядер MongoDB позволяет испытать знакомые преимущества MongoDB при доступе к расширенным корпоративным функциям, предлагаемым Azure Cosmos DB. Он обеспечивает совместимость, следуя протоколу проводной передачи MongoDB, что позволяет применять существующие клиентские драйверы, пакеты SDK и другие средства, с которыми вы уже знакомы.

Поддержка протоколов

Здесь перечислены поддерживаемые операторы и все ограничения или исключения. Любой драйвер клиента, который понимает эти протоколы, должен иметь возможность подключаться к Azure Cosmos DB для MongoDB. При создании кластеров виртуальных ядер Azure Cosmos DB для MongoDB конечная точка находится в формате *.mongocluster.cosmos.azure.com.

Поддержка языка запросов

Azure Cosmos DB для MongoDB обеспечивает комплексную поддержку конструкций языка запросов MongoDB. Ниже приведен подробный список поддерживаемых в настоящее время команд базы данных, операторов, этапов и параметров.

Примечание.

В этой статье приведены только поддерживаемые серверные команды и не указаны функции-оболочки на стороне клиента. Функции-оболочки на стороне клиента, такие как deleteMany() и updateMany(), внутренне используют серверные команды delete() и update(). Функции, использующие поддерживаемые команды сервера, совместимы с Azure Cosmos DB для MongoDB.

Команды базы данных

Azure Cosmos DB для виртуальных ядер MongoDB поддерживает следующие команды базы данных:

КатегорияКоманда Компонент
v5.0 v6.0 v7.0
Административные командыcloneCollectionAsCapped No Нет, в настоящее время не поддерживаются сопоставленные коллекции.
collMod Да Да Да
compact Нет Нет Нет
convertToCapped No Нет. В настоящее время не поддерживаются сопоставленные коллекции.
create Да Да Да
createIndexes Да Да Да
currentOp Да Да Да
drop Да Да Да
dropDatabase Да Да Да
dropConnectionsВ качестве службы PaaS это будет управляться Azure.
dropIndexes Да Да Да
filemd5 Нет Нет Нет
fsyncВ качестве службы PaaS это будет управляться Azure.
fsyncUnlockВ качестве службы PaaS это будет управляться Azure.
getDefaultRWConcern Да Да Да
getClusterParameter Нет Нет
getParameter Да Да Да
killCursors Да Да Да
killOp Да Да Да
listCollections Да Да Да
listDatabases Да Да Да
listIndexes Да Да Да
logRotateВ качестве службы PaaS это будет управляться Azure.
reIndex Да Да Да
renameCollection Да Да Да
rotateCertificatesВ качестве службы PaaS это будет управляться Azure.
setFeatureCompatibilityVersionВ качестве службы PaaS это будет управляться Azure.
setIndexCommitQuorum Нет Нет Нет
setParameter Да Да Да
setDefaultRWConcern Нет Нет Нет
validateDBMetadata Нет Нет Нет
shutdownВ качестве службы PaaS это будет управляться Azure.
compactStructuredEncryptionDataВ качестве службы PaaS это будет управляться Azure.
setUserWriteBlockModeВ качестве службы PaaS это будет управляться Azure.
Команды агрегирования совокупность Да Да Да
count Да Да Да
distinct Да Да Да
mapReduceНе рекомендуется использовать в MongoDB 5.0
Команды проверки подлинностиauthenticate Да Да Да
logoutНе рекомендуется использовать в MongoDB 5.0
Команды диагностикиbuildInfo Да Да Да
collStats Да Да Да
connPoolStats Нет Нет Нет
connectionStatus Да Да Да
dataSize Нет Нет Нет
dbHash Нет Нет Нет
dbStats Да Да Да
explain Да Да Да
getCmdLineOpts Да Да Да
getLog Да Да Да
hello Да Да Да
hostInfo Да Да Да
listCommands Да Да Да
lockInfo Нет Нет Нет
ping Да Да Да
profileВ качестве службы PaaS это будет управляться Azure.
serverStatus Нет Нет Нет
shardConnPoolStatsНе рекомендуется использовать в MongoDB 5.0. Альтернатива: connPoolStats
top Нет Нет Нет
validate Да Да Да
whatsmyuri Да Да Да
Геопространственные командыgeoSearchНе рекомендуется использовать в MongoDB 5.0
Команды операций запроса и записиbulkWrite Нет Нет Нет
delete Да Да Да
find Да Да Да
findAndModify Да Да Да
getLastErrorНе рекомендуется использовать в MongoDB 5.1
getMore Да Да Да
insert Да Да Да
resetErrorНе рекомендуется использовать в MongoDB 5.0
update Да Да Да
Команды кэша плана запросовВ качестве службы PaaS это будет управляться Azure.
Команды репликацииAzure управляет репликацией, удаляя необходимость репликации клиентами вручную.
Команды управления ролямиСейчас не поддерживается, но в будущем будет доступен с помощью Azure Active Directory.
Команды сеансаabortTransaction Да Да Да
commitTransaction Да Да Да
endSessions Да Да Да
killAllSessions Нет Нет Нет
killAllSessionsByPattern Нет Нет Нет
killSessions Да Да Да
refreshSessions Нет Нет Нет
startSession Да Да Да
Команды сегментированияenableSharding Да Да Да
isdbgrid Да Да Да
reshardCollection Да Да Да
shardCollection Да Да Да
unsetShardingНе рекомендуется использовать в MongoDB 5.0
addShardКак предложение "Платформа как услуга" (PaaS) Azure управляет управлением сегментами и перебалансированием. Пользователям необходимо указать стратегию сегментирования для коллекций, а Azure будет обрабатывать остальные.
addShardToZone
clearJumboFlag
abortUnshardCollection
removeShard
removeShardFromZone
setShardVersion
mergeChunks
abortMoveCollection
getShardMap
analyzeShardKey
medianKey
checkMetadataConsistency
shardingState
cleanupReshardCollection
flushRouterConfig
balancerCollectionStatus
balancerStart
balancerStatus
balancerStop
configureCollectionBalancing
listShards
split
moveChunk
updateZoneKeyRange
movePrimary
moveRange
abortReshardCollection
commitReshardCollection
refineCollectionShardKey
configureQueryAnalyzer
transitionFromDedicatedConfigServer
transitionToDedicatedConfigServer
unshardCollection
Команды аудита системных событийlogApplicationMessage Нет Нет Нет
Команды управления пользователямиcreateUser Да Да Да
dropUser Да Да Да
usersInfo Да Да Да
dropAllUsersFromDatabaseСейчас не поддерживается, но в будущем будет доступен с помощью Azure Active Directory.
grantRolesToUser
revokeRolesFromUser
updateUser

Операторы

Ниже приведен список операторов, поддерживаемых в Настоящее время в Azure Cosmos DB для виртуальных ядер MongoDB:

Примечание.

AvgObjsize и size в collStats и dbStats работают только с размером документа менее 2 КБ.

КатегорияКоманда Компонент
v5.0 v6.0 v7.0
Операторы запросов сравнения$eq Да Да Да
$gt Да Да Да
$gte Да Да Да
$in Да Да Да
$lt Да Да Да
$lte Да Да Да
$ne Да Да Да
$nin Да Да Да
Операторы логических запросов$and Да Да Да
$not Да Да Да
$nor Да Да Да
$or Да Да Да
Операторы запросов элементов$exists Да Да Да
$type Да Да Да
Операторы запросов оценки$expr Да Да Да
$jsonSchema* Да Да Да
$mod Да Да Да
$regex Да Да Да
$text Да Да Да
$where Нет Нет Нет
Геопространственные операторы$geoIntersects Да Да Да
$geoWithin Да Да Да
$box Да Да Да
$center Да Да Да
$centerSphere Да Да Да
$geometry Да Да Да
$maxDistance Да Да Да
$minDistance Да Да Да
$polygon Да Да Да
$near Да Да Да
$nearSphere Да Да Да
Операторы запросов массива$all Да Да Да
$elemMatch Да Да Да
$size Да Да Да
Побитовые операторы запросов$bitsAllClear Да Да Да
$bitsAllSet Да Да Да
$bitsAnyClear Да Да Да
$bitsAnySet Да Да Да
Операторы проекции$ Да Да Да
$elemMatch Да Да Да
$meta Нет Нет Нет
$slice Да Да Да
Другие операторы запросов$comment Да Да Да
$rand Да Да Да
$natural Да Да Да
Операторы обновления полей$currentDate Да Да Да
$inc Да Да Да
$min Да Да Да
$max Да Да Да
$mul Да Да Да
$rename Да Да Да
$set Да Да Да
$setOnInsert Да Да Да
$unset Да Да Да
Операторы обновления массива$ Да Да Да
$[] Да Да Да
$[identifier] Да Да Да
$addToSet Да Да Да
$pop Да Да Да
$pull Да Да Да
$push Да Да Да
$pullAll Да Да Да
$each Да Да Да
$position Да Да Да
$slice Да Да Да
$sort Да Да Да
Операторы побитового обновления$bit Да Да Да
Арифметические операторы выражений$abs Да Да Да
$add Да Да Да
$ceil Да Да Да
$divide Да Да Да
$exp Да Да Да
$floor Да Да Да
$ln Да Да Да
$log Да Да Да
$log10 Да Да Да
$mod Да Да Да
$multiply Да Да Да
$pow Да Да Да
$round Да Да Да
$sqrt Да Да Да
$subtract Да Да Да
$trunc Да Да Да
Операторы выражений массива$arrayElemAt Да Да Да
$arrayToObject Да Да Да
$concatArrays Да Да Да
$filter Да Да Да
$firstN Да Да Да
$in Да Да Да
$indexOfArray Да Да Да
$isArray Да Да Да
$lastN Да Да Да
$map Да Да Да
$maxN Да Да
$minN Да Да
$objectToArray Да Да Да
$range Да Да Да
$reduce Да Да Да
$reverseArray Да Да Да
$size Да Да Да
$slice Да Да Да
$sortArray Да Да
$zip Да Да Да
Битовые операторы$bitAnd Да Да Да
$bitNot Да Да Да
$bitOr Да Да Да
$bitXor Да Да Да
Логические операторы выражений$and Да Да Да
$not Да Да Да
$or Да Да Да
Операторы выражений сравнения$cmp Да Да Да
$eq Да Да Да
$gt Да Да Да
$gte Да Да Да
$lt Да Да Да
$lte Да Да Да
$ne Да Да Да
Пользовательские операторы выражения агрегированияФункция пока не поддерживается.
Операторы размера данных$bsonSize Да Да Да
$binarySize Да Да Да
Операторы выражения даты$dateAdd Да Да Да
$dateDiff Да Да Да
$dateFromParts Да Да Да
$dateFromString Да Да Да
$dateSubtract Да Да Да
$dateToParts Да Да Да
$dateToString Да Да Да
$dateTrunc Да Да Да
$dayOfMonth Да Да Да
$dayOfWeek Да Да Да
$dayOfYear Да Да Да
$hour Да Да Да
$isoDayOfWeek Да Да Да
$isoWeek Да Да Да
$isoWeekYear Да Да Да
$millisecond Да Да Да
$minute Да Да Да
$month Да Да Да
$second Да Да Да
$toDate Да Да Да
$week Да Да Да
$year Да Да Да
Оператор литерального выражения$literal Да Да Да
Прочие операторы$getField Да Да Да
$rand Да Да Да
$sampleRate Да Да Да
Операторы выражений объектов$mergeObjects Да Да Да
$objectToArray Да Да Да
$setField Да Да Да
Установка операторов выражений$allElementsTrue Да Да Да
$anyElementTrue Да Да Да
$setDifference Да Да Да
$setEquals Да Да Да
$setIntersection Да Да Да
$setIsSubset Да Да Да
$setUnion Да Да Да
Операторы строковых выражений$concat Да Да Да
$dateFromString Да Да Да
$dateToString Да Да Да
$indexOfBytes Да Да Да
$indexOfCP Да Да Да
$ltrim Да Да Да
$regexFind Да Да Да
$regexFindAll Да Да Да
$regexMatch Да Да Да
$replaceOne Да Да Да
$replaceAll Да Да Да
$rtrim Да Да Да
$split Да Да Да
$strLenBytes Да Да Да
$strLenCP Да Да Да
$strcasecmp Да Да Да
$substr Да Да Да
$substrBytes Да Да Да
$substrCP Да Да Да
$toLower Да Да Да
$toString Да Да Да
$trim Да Да Да
$toUpper Да Да Да
Оператор выражения текста$meta Нет Нет Нет
Операторы выражений метки времени$tsIncrement Да Да Да
$tsSecond Да Да Да
Операторы выражений Trigonometry$sin Да Да Да
$cos Да Да Да
$tan Да Да Да
$asin Да Да Да
$acos Да Да Да
$atan Да Да Да
$atan2 Да Да Да
$asinh Да Да Да
$acosh Да Да Да
$atanh Да Да Да
$sinh Да Да Да
$cosh Да Да Да
$tanh Да Да Да
$degreesToRadians Да Да Да
$radiansToDegrees Да Да Да
Операторы выражений типа$convert Да Да Да
$isNumber Да Да Да
$toBool Да Да Да
$toDate Да Да Да
$toDecimal Да Да Да
$toDouble Да Да Да
$toInt Да Да Да
$toLong Да Да Да
$toObjectId Да Да Да
$toString Да Да Да
$type Да Да Да
Накопительные ($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 Да Да
Аккумуляторы (на других этапах)$avg Да Да Да
$first Да Да Да
$last Да Да Да
$max Да Да Да
$median Да Да Да
$min Да Да Да
$percentile Да Да Да
$stdDevPop Да Да Да
$stdDevSamp Да Да Да
$sum Да Да Да
Операторы выражений переменной$let Да Да Да
Операторы окон$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 Да Да Да
Операторы условного выражения$cond Да Да Да
$ifNull Да Да Да
$switch Да Да Да
Этапы конвейера агрегирования$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 Нет Нет Нет
$currentOp Да Да Да
$listLocalSessions Нет Нет Нет
Переменные в выражениях агрегирования СЕЙЧАС Да Да Да
ROOT Да Да Да
REMOVE Да Да Да
CURRENT Да Да Да
CLUSTER_TIME Нет Нет Нет
DESCEND Да Да Да
PRUNE Да Да Да
KEEP Да Да Да
SEARCH_META Нет Нет Нет
USER_ROLES Нет Нет Нет

Примечание.

*Проверка схемы поддерживает: вставку, обновление, findAndModify и этапы $merge / $out в агрегации. Используйте обходDocumentValidation, чтобы пропустить проверку при необходимости.

Индексы и свойства индекса

Azure Cosmos DB для виртуальных ядер MongoDB поддерживает следующие индексы и свойства индекса:

Примечание.

Создание уникального индекса получает монопольную блокировку коллекции на весь период процесса сборки. Это блокирует операции чтения и записи в коллекции до завершения операции.

Индексы

КомандаПоддерживается
Индекс одного поля Да
Составной индекс Да
Многоключевой индекс Да
Текстовый индекс Да
Индекс подстановочных знаков Да
Геопространственный индекс Да
Хэшированный индекс Да
Векторный индекс (доступен только в Cosmos DB) Да Да, с векторным поиском

Свойства индекса

КомандаПоддерживается
СРОК ЖИЗНИ Да
Уникальный Да
Частично Да
Без учета регистра Да
Разреженный Да
Общие сведения Да

Следующие шаги