Azure Cosmos DB for MongoDB vCore 具备 MongoDB 的兼容性和功能支持

APPLIES TO: MongoDB vCore

Azure Cosmos DB for MongoDB vCore 提供熟悉的 MongoDB 优势体验,同时允许访问 Azure Cosmos DB 提供的增强型企业功能。 它通过遵循 MongoDB 线路协议来确保兼容性,从而允许应用已熟悉的现有客户端驱动程序、SDK 和其他工具。

Protocol support

此处列出了支持的运算符以及任何限制或例外。 任何理解这些协议的客户端驱动程序应该都能够连接到 Azure Cosmos DB for MongoDB。 创建 Azure Cosmos DB for MongoDB vCore 群集时,终结点格式为 *.mongocluster.cosmos.azure.cn

查询语言支持

Azure Cosmos DB for MongoDB 全面支持 MongoDB 查询语言构造。 可以在下方查找当前支持的数据库命令、运算符、阶段和选项的详细列表。

备注

本文仅列出受支持的服务器命令,并排除客户端包装器函数。 客户端包装器函数(如 deleteMany()updateMany())在内部利用 delete()update() 服务器命令。 利用受支持的服务器命令的函数与 Azure Cosmos DB for MongoDB 兼容。

Database commands

Azure Cosmos DB for MongoDB vCore 支持以下数据库命令:

Category Command Feature
v5.0 v6.0 v7.0
Administrative CommandscloneCollectionAsCapped No No, capped collections are currently not supported.
collMod Yes Yes Yes
compact No No No
convertToCapped No No. 目前不支持固定集合。
create Yes Yes Yes
createIndexes Yes Yes Yes
currentOp Yes Yes Yes
drop Yes Yes Yes
dropDatabase Yes Yes Yes
dropConnections作为一种 PaaS 服务,这将由 Azure 管理。
dropIndexes Yes Yes Yes
filemd5 No No No
fsync作为一种 PaaS 服务,这将由 Azure 管理。
fsyncUnlock作为一种 PaaS 服务,这将由 Azure 管理。
getDefaultRWConcern Yes Yes Yes
getClusterParameter No No
getParameter Yes Yes Yes
killCursors Yes Yes Yes
killOp Yes Yes Yes
listCollections Yes Yes Yes
listDatabases Yes Yes Yes
listIndexes Yes Yes Yes
logRotate作为一种 PaaS 服务,这将由 Azure 管理。
reIndex Yes Yes Yes
renameCollection Yes Yes Yes
rotateCertificates作为一种 PaaS 服务,这将由 Azure 管理。
setFeatureCompatibilityVersion作为一种 PaaS 服务,这将由 Azure 管理。
setIndexCommitQuorum No No No
setParameter Yes Yes Yes
setDefaultRWConcern No No No
validateDBMetadata No No No
shutdown作为一种 PaaS 服务,这将由 Azure 管理。
Aggregation Commands aggregate Yes Yes Yes
count Yes Yes Yes
distinct Yes Yes Yes
mapReduceMongoDB 5.0 中已弃用
Authentication Commandsauthenticate Yes Yes Yes
logoutMongoDB 5.0 中已弃用
Diagnostic CommandsbuildInfo Yes Yes Yes
collStats Yes Yes Yes
connPoolStats No No No
connectionStatus Yes Yes Yes
dataSize No No No
dbHash No No No
dbStats Yes Yes Yes
explain Yes Yes Yes
getCmdLineOpts Yes Yes Yes
getLog Yes Yes Yes
hello Yes Yes Yes
hostInfo Yes Yes Yes
listCommands Yes Yes Yes
lockInfo No No No
ping Yes Yes Yes
profile作为一种 PaaS 服务,这将由 Azure 管理。
serverStatus No No No
shardConnPoolStatsMongoDB 5.0 中已弃用。 Alternative: connPoolStats
top No No No
validate Yes Yes Yes
whatsmyuri Yes Yes Yes
Geospatial CommandsgeoSearchMongoDB 5.0 中已弃用
查询和写入操作命令bulkWrite No No No
delete Yes Yes Yes
find Yes Yes Yes
findAndModify Yes Yes Yes
getLastError在 MongoDB 5.1 中已弃用
getMore Yes Yes Yes
insert Yes Yes Yes
resetErrorMongoDB 5.0 中已弃用
update Yes Yes Yes
查询计划缓存命令作为一种 PaaS 服务,这将由 Azure 管理。
Replication CommandsAzure 可管理复制,消除了客户手动复制的必要性。
角色管理命令目前不受支持,但未来将通过 Azure Active Directory 提供。
Session CommandsabortTransaction Yes Yes Yes
commitTransaction Yes Yes Yes
endSessions Yes Yes Yes
killAllSessions No No No
killAllSessionsByPattern No No No
killSessions Yes Yes Yes
refreshSessions No No No
startSession Yes Yes Yes
Sharding CommandsenableSharding Yes Yes Yes
isdbgrid Yes Yes Yes
reshardCollection Yes Yes Yes
shardCollection Yes Yes Yes
unsetShardingMongoDB 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 No No No
用户管理命令createUser Yes Yes Yes
dropUser Yes Yes Yes
usersInfo Yes Yes Yes
dropAllUsersFromDatabase目前不受支持,但未来将通过 Azure Active Directory 提供。
grantRolesToUser
revokeRolesFromUser
updateUser

Operators

下面是当前 Azure Cosmos DB for MongoDB vCore 上支持的运算符列表:

备注

AvgObjsize 和 size in “collStats” 和 “dbStats” 仅适用于小于 2 KB 的文档大小。

Category Command Feature
v5.0 v6.0 v7.0
比较查询运算符$eq Yes Yes Yes
$gt Yes Yes Yes
$gte Yes Yes Yes
$in Yes Yes Yes
$lt Yes Yes Yes
$lte Yes Yes Yes
$ne Yes Yes Yes
$nin Yes Yes Yes
逻辑查询运算符$and Yes Yes Yes
$not Yes Yes Yes
$nor Yes Yes Yes
$or Yes Yes Yes
元素查询运算符$exists Yes Yes Yes
$type Yes Yes Yes
评估查询运算符$expr Yes Yes Yes
$jsonSchema* Yes Yes Yes
$mod Yes Yes Yes
$regex Yes Yes Yes
$text Yes Yes Yes
$where No No No
Geospatial Operators$geoIntersects Yes Yes Yes
$geoWithin Yes Yes Yes
$box Yes Yes Yes
$center Yes Yes Yes
$centerSphere Yes Yes Yes
$geometry Yes Yes Yes
$maxDistance Yes Yes Yes
$minDistance Yes Yes Yes
$polygon Yes Yes Yes
$near Yes Yes Yes
$nearSphere Yes Yes Yes
数组查询运算符$all Yes Yes Yes
$elemMatch Yes Yes Yes
$size Yes Yes Yes
位查询运算符$bitsAllClear Yes Yes Yes
$bitsAllSet Yes Yes Yes
$bitsAnyClear Yes Yes Yes
$bitsAnySet Yes Yes Yes
Projection Operators$ Yes Yes Yes
$elemMatch Yes Yes Yes
$meta No No No
$slice Yes Yes Yes
杂项查询运算符$comment Yes Yes Yes
$rand Yes Yes Yes
$natural Yes Yes Yes
字段更新运算符$currentDate Yes Yes Yes
$inc Yes Yes Yes
$min Yes Yes Yes
$max Yes Yes Yes
$mul Yes Yes Yes
$rename Yes Yes Yes
$set Yes Yes Yes
$setOnInsert Yes Yes Yes
$unset Yes Yes Yes
数组更新运算符$ Yes Yes Yes
$[] Yes Yes Yes
$[identifier] Yes Yes Yes
$addToSet Yes Yes Yes
$pop Yes Yes Yes
$pull Yes Yes Yes
$push Yes Yes Yes
$pullAll Yes Yes Yes
$each Yes Yes Yes
$position Yes Yes Yes
$slice Yes Yes Yes
$sort Yes Yes Yes
位更新运算符$bit Yes Yes Yes
算术表达式运算符$abs Yes Yes Yes
$add Yes Yes Yes
$ceil Yes Yes Yes
$divide Yes Yes Yes
$exp Yes Yes Yes
$floor Yes Yes Yes
$ln Yes Yes Yes
$log Yes Yes Yes
$log10 Yes Yes Yes
$mod Yes Yes Yes
$multiply Yes Yes Yes
$pow Yes Yes Yes
$round Yes Yes Yes
$sqrt Yes Yes Yes
$subtract Yes Yes Yes
$trunc Yes Yes Yes
数组表达式运算符$arrayElemAt Yes Yes Yes
$arrayToObject Yes Yes Yes
$concatArrays Yes Yes Yes
$filter Yes Yes Yes
$firstN Yes Yes Yes
$in Yes Yes Yes
$indexOfArray Yes Yes Yes
$isArray Yes Yes Yes
$lastN Yes Yes Yes
$map Yes Yes Yes
$maxN Yes Yes
$minN Yes Yes
$objectToArray Yes Yes Yes
$range Yes Yes Yes
$reduce Yes Yes Yes
$reverseArray Yes Yes Yes
$size Yes Yes Yes
$slice Yes Yes Yes
$sortArray Yes Yes
$zip Yes Yes Yes
Bitwise Operators$bitAnd Yes Yes Yes
$bitNot Yes Yes Yes
$bitOr Yes Yes Yes
$bitXor Yes Yes Yes
布尔表达式运算符$and Yes Yes Yes
$not Yes Yes Yes
$or Yes Yes Yes
比较表达式运算符$cmp Yes Yes Yes
$eq Yes Yes Yes
$gt Yes Yes Yes
$gte Yes Yes Yes
$lt Yes Yes Yes
$lte Yes Yes Yes
$ne Yes Yes Yes
自定义聚合表达式运算符尚不支持。
数据大小运算符$bsonSize Yes Yes Yes
$binarySize Yes Yes Yes
日期表达式运算符$dateAdd Yes Yes Yes
$dateDiff Yes Yes Yes
$dateFromParts Yes Yes Yes
$dateFromString Yes Yes Yes
$dateSubtract Yes Yes Yes
$dateToParts Yes Yes Yes
$dateToString Yes Yes Yes
$dateTrunc Yes Yes Yes
$dayOfMonth Yes Yes Yes
$dayOfWeek Yes Yes Yes
$dayOfYear Yes Yes Yes
$hour Yes Yes Yes
$isoDayOfWeek Yes Yes Yes
$isoWeek Yes Yes Yes
$isoWeekYear Yes Yes Yes
$millisecond Yes Yes Yes
$minute Yes Yes Yes
$month Yes Yes Yes
$second Yes Yes Yes
$toDate Yes Yes Yes
$week Yes Yes Yes
$year Yes Yes Yes
字面量表达式运算符$literal Yes Yes Yes
Miscellaneous Operators$getField Yes Yes Yes
$rand Yes Yes Yes
$sampleRate Yes Yes Yes
对象表达式运算符$mergeObjects Yes Yes Yes
$objectToArray Yes Yes Yes
$setField Yes Yes Yes
集表达式运算符$allElementsTrue Yes Yes Yes
$anyElementTrue Yes Yes Yes
$setDifference Yes Yes Yes
$setEquals Yes Yes Yes
$setIntersection Yes Yes Yes
$setIsSubset Yes Yes Yes
$setUnion Yes Yes Yes
字符串表达式运算符$concat Yes Yes Yes
$dateFromString Yes Yes Yes
$dateToString Yes Yes Yes
$indexOfBytes Yes Yes Yes
$indexOfCP Yes Yes Yes
$ltrim Yes Yes Yes
$regexFind Yes Yes Yes
$regexFindAll Yes Yes Yes
$regexMatch Yes Yes Yes
$replaceOne Yes Yes Yes
$replaceAll Yes Yes Yes
$rtrim Yes Yes Yes
$split Yes Yes Yes
$strLenBytes Yes Yes Yes
$strLenCP Yes Yes Yes
$strcasecmp Yes Yes Yes
$substr Yes Yes Yes
$substrBytes Yes Yes Yes
$substrCP Yes Yes Yes
$toLower Yes Yes Yes
$toString Yes Yes Yes
$trim Yes Yes Yes
$toUpper Yes Yes Yes
文本表达式运算符$meta No No No
时间戳表达式运算符$tsIncrement Yes Yes Yes
$tsSecond Yes Yes Yes
三角表达式运算符$sin Yes Yes Yes
$cos Yes Yes Yes
$tan Yes Yes Yes
$asin Yes Yes Yes
$acos Yes Yes Yes
$atan Yes Yes Yes
$atan2 Yes Yes Yes
$asinh Yes Yes Yes
$acosh Yes Yes Yes
$atanh Yes Yes Yes
$sinh Yes Yes Yes
$cosh Yes Yes Yes
$tanh Yes Yes Yes
$degreesToRadians Yes Yes Yes
$radiansToDegrees Yes Yes Yes
类型表达式运算符$convert Yes Yes Yes
$isNumber Yes Yes Yes
$toBool Yes Yes Yes
$toDate Yes Yes Yes
$toDecimal Yes Yes Yes
$toDouble Yes Yes Yes
$toInt Yes Yes Yes
$toLong Yes Yes Yes
$toObjectId Yes Yes Yes
$toString Yes Yes Yes
$type Yes Yes Yes
累加器($group、$bucket、$bucketAuto、$setWindowFields)$accumulator No No No
$addToSet Yes Yes Yes
$avg Yes Yes Yes
$bottom Yes Yes
$bottomN Yes Yes
$count Yes Yes Yes
$first Yes Yes Yes
$firstN Yes Yes Yes
$last Yes Yes Yes
$lastN Yes Yes Yes
$max Yes Yes Yes
$maxN Yes Yes
$median Yes Yes Yes
$mergeObjects Yes Yes Yes
$min Yes Yes Yes
$percentile Yes Yes Yes
$push Yes Yes Yes
$stdDevPop Yes Yes Yes
$stdDevSamp Yes Yes Yes
$sum Yes Yes Yes
$top Yes Yes
$topN Yes Yes
累加器(在其他阶段)$avg Yes Yes Yes
$first Yes Yes Yes
$last Yes Yes Yes
$max Yes Yes Yes
$median Yes Yes Yes
$min Yes Yes Yes
$percentile Yes Yes Yes
$stdDevPop Yes Yes Yes
$stdDevSamp Yes Yes Yes
$sum Yes Yes Yes
变量表达式运算符$let Yes Yes Yes
Window Operators$sum Yes Yes Yes
$push Yes Yes Yes
$addToSet Yes Yes Yes
$count Yes Yes Yes
$max Yes Yes Yes
$min Yes Yes Yes
$avg Yes Yes Yes
$stdDevPop Yes Yes Yes
$bottom Yes Yes Yes
$bottomN Yes Yes Yes
$covariancePop Yes Yes Yes
$covarianceSamp Yes Yes Yes
$denseRank Yes Yes Yes
$derivative Yes Yes Yes
$documentNumber Yes Yes Yes
$expMovingAvg Yes Yes Yes
$first Yes Yes Yes
$integral Yes Yes Yes
$last Yes Yes Yes
$linearFill Yes Yes Yes
$locf Yes Yes Yes
$minN Yes Yes Yes
$rank Yes Yes Yes
$shift Yes Yes Yes
$stdDevSamp Yes Yes Yes
$top Yes Yes Yes
$topN Yes Yes Yes
条件表达式运算符$cond Yes Yes Yes
$ifNull Yes Yes Yes
$switch Yes Yes Yes
聚合管道阶段$addFields Yes Yes Yes
$bucket Yes Yes Yes
$bucketAuto No No No
$changeStream Yes Yes Yes
$changeStreamSplitLargeEvent No No No
$collStats Yes Yes Yes
$count Yes Yes Yes
$densify Yes Yes
$documents Yes Yes
$facet Yes Yes Yes
$fill Yes Yes
$geoNear Yes Yes Yes
$graphLookup Yes Yes Yes
$group Yes Yes Yes
$indexStats Yes Yes Yes
$limit Yes Yes Yes
$listSampledQueries No No No
$listSearchIndexes No No No
$listSessions No No No
$lookup Yes Yes Yes
$match Yes Yes Yes
$merge Yes Yes Yes
$out Yes Yes Yes
$planCacheStats No No No
$project Yes Yes Yes
$redact Yes Yes Yes
$replaceRoot Yes Yes Yes
$replaceWith Yes Yes Yes
$sample Yes Yes Yes
$search Yes Yes Yes
$searchMeta Yes Yes Yes
$set Yes Yes Yes
$setWindowFields Yes Yes Yes
$skip Yes Yes Yes
$sort Yes Yes Yes
$sortByCount Yes Yes Yes
$unionWith Yes Yes Yes
$unset Yes Yes Yes
$unwind Yes Yes Yes
$shardedDataDistribution No No No
$currentOp Yes Yes Yes
$listLocalSessions No No No
聚合表达式中的变量 NOW Yes Yes Yes
ROOT Yes Yes Yes
REMOVE Yes Yes Yes
CURRENT Yes Yes Yes
CLUSTER_TIME No No No
DESCEND Yes Yes Yes
PRUNE Yes Yes Yes
KEEP Yes Yes Yes
SEARCH_META No No No
USER_ROLES No No No

备注

*架构验证支持:在聚合中插入、更新、查找AndModify 和$merge/$out阶段。 如果需要,请使用 bypassDocumentValidation 跳过验证。

索引和索引属性

Azure Cosmos DB for MongoDB vCore 支持以下索引和索引属性:

备注

Creating a unique index obtains an exclusive lock on the collection for the entire duration of the build process. 在操作完成前,集合都无法执行读取和写入操作。

Indexes

CommandSupported
单字段索引 Yes
Compound Index Yes
Multikey Index Yes
Text Index Yes
Wildcard Index Yes
Geospatial Index Yes
Hashed Index Yes

Index properties

CommandSupported
TTL Yes
Unique Yes
Partial Yes
Case Insensitive Yes
Sparse Yes
Background Yes

Next steps