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

适用对象: MongoDB vCore

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

协议支持

此处列出了支持的运算符以及任何限制或例外。 任何理解这些协议的客户端驱动程序应该都能够连接到 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 兼容。

数据库命令

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

类别 命令 特征
v5.0 v6.0 v7.0
聚合命令 聚合 是的 是的 是的
count 是的 是的 是的
distinct 是的 是的 是的
mapReduceMongoDB 5.0 中已弃用
身份验证命令authenticate 是的 是的 是的
getnonce在 MongoDB 4.0 中已弃用
logoutMongoDB 5.0 中已弃用
地理空间命令geoSearchMongoDB 5.0 中已弃用
查询计划缓存命令 不 不 不
管理命令cloneCollectionAsCapped 不 否,目前不支持封顶集合。
collMod 是的 是的 是的
compact 不 不 不
convertToCapped 不 不。 目前不支持固定集合。
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 不 不 不
shutdown作为一种 PaaS 服务,这将由 Azure 管理。
用户及角色管理命令目前不受支持,但未来将通过 Azure Active Directory 提供。
复制命令Azure 可管理复制,消除了客户手动复制的必要性。
分片命令enableSharding 是的 是的 是的
isdbgrid 是的 是的 是的
reshardCollection 是的 是的 是的
shardCollection 是的 是的 是的
unsetShardingMongoDB 5.0 中已弃用
addShard作为平台即服务 (PaaS) 产品/服务,Azure 负责管理分片管理和再平衡。 用户只需为集合指定分片策略,Azure 将处理剩余的工作。
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
查询和写入操作命令change streams 不 不 不
delete 是的 是的 是的
find 是的 是的 是的
findAndModify 是的 是的 是的
getLastError在 MongoDB 5.1 中已弃用
getMore 是的 是的 是的
insert 是的 是的 是的
resetErrorMongoDB 5.0 中已弃用
update 是的 是的 是的
会话命令abortTransaction 是的 是的 是的
commitTransaction 是的 是的 是的
endSessions 是的 是的 是的
killAllSessions 不 不 不
killAllSessionsByPattern 不 不 不
killSessions 是的 是的 是的
refreshSessions 不 不 不
startSession 是的 是的 是的
诊断命令availableQueryOptions 不 不 不
buildInfo 是的 是的 是的
collStats 是的 是的 是的
connPoolStats 不 不 不
connectionStatus 是的 是的 是的
dataSize 不 不 不
dbHash 不 不 不
dbStats 是的 是的 是的
driverOIDTest作为一种 PaaS 服务,这将由 Azure 管理。
explain 是的 是的 是的
features作为一种 PaaS 服务,这将由 Azure 管理。
getCmdLineOpts 是的 是的 是的
getLog 是的 是的 是的
hello 是的 是的 是的
hostInfo 是的 是的 是的
_isSelf 不 不 不
listCommands 是的 是的 是的
lockInfo 不 不 不
netstat 不 不 不
ping 是的 是的 是的
profile作为一种 PaaS 服务,这将由 Azure 管理。
serverStatus 不 不 不
shardConnPoolStatsMongoDB 5.0 中已弃用
top 不 不 不
validate 是的 是的 是的
whatsmyuri 是的 是的 是的
系统事件审核命令logApplicationMessage 不 不 不

运算符

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

备注

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

类别 命令 特征
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 是的 是的 是的
三角表达式运算符$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 不 不 不
$changeStream 不 不 不
$currentOp 是的 是的 是的
$listLocalSessions 不 不 不
$documents 不 不 不
聚合表达式中的变量 现在 是的 是的 是的
ROOT 是的 是的 是的
REMOVE 是的 是的 是的
CURRENT 是的 是的 是的
CLUSTER_TIME 不 不 不
DESCEND 是的 是的 是的
PRUNE 是的 是的 是的
KEEP 是的 是的 是的
SEARCH_META 不 不 不
USER_ROLES 不 不 不

索引和索引属性

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

备注

创建唯一索引可在整个生成过程中获取针对集合的排他锁。 在操作完成前,集合都无法执行读取和写入操作。

索引

命令支持
单字段索引 是的
复合索引 是的
多键索引 是的
文本索引 是的
通配符索引 是的
地理空间索引 是的
哈希索引 是的

索引属性

命令支持
TTL 是的
独特 是的
部分 是的
不区分大小写 是的
稀疏 是的
背景 是的

后续步骤