你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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.com

查询语言支持

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

注意

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

数据库命令

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

类别命令功能
v5.0v6.0v7.0
聚合命令聚合是是是
count是是是
distinct是是是
mapReduceMongoDB 5.0 中已弃用
身份验证命令authenticate是是是
getnonce在 MongoDB 4.0 中已弃用
logoutMongoDB 5.0 中已弃用
地理空间命令geoSearchMongoDB 5.0 中已弃用
查询计划缓存命令否No否
管理命令cloneCollectionAsCapped否否,目前不支持带有上限的集合。
collMod是是是
compact否No否
convertToCapped否No. 目前不支持固定集合。
create是是是
createIndexes是是是
currentOp是是是
drop是是是
dropDatabase是是是
dropConnections作为一种 PaaS 服务,这将由 Azure 管理。
dropIndexes是是是
filemd5否No否
fsync作为一种 PaaS 服务,这将由 Azure 管理。
fsyncUnlock作为一种 PaaS 服务,这将由 Azure 管理。
getDefaultRWConcern是是是
getClusterParameter否No
getParameter是是是
killCursors是是是
killOp是是是
listCollections是是是
listDatabases是是是
listIndexes是是是
logRotate作为一种 PaaS 服务,这将由 Azure 管理。
reIndex是是是
renameCollection是是是
rotateCertificates作为一种 PaaS 服务,这将由 Azure 管理。
setFeatureCompatibilityVersion作为一种 PaaS 服务,这将由 Azure 管理。
setIndexCommitQuorum否NoNo
setParameter是是是
setDefaultRWConcern否No否
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否NoNo
delete是是是
find是是是
findAndModify是是是
getLastError在 MongoDB 5.1 中已弃用
getMore是是是
insert是是是
resetErrorMongoDB 5.0 中已弃用
update是是是
会话命令abortTransaction是是是
commitTransaction是是是
endSessions是是是
killAllSessions否NoNo
killAllSessionsByPatternNoNoNo
killSessions是是是
refreshSessions否NoNo
startSession是是是
诊断命令availableQueryOptions否NoNo
buildInfo是是是
collStats是是是
connPoolStats否NoNo
connectionStatus是是是
dataSize否NoNo
dbHashNoNoNo
dbStats是是是
driverOIDTest作为一种 PaaS 服务,这将由 Azure 管理。
explain是是是
features作为一种 PaaS 服务,这将由 Azure 管理。
getCmdLineOpts是是是
getLog是是是
hostInfo是是是
_isSelf否NoNo
listCommands是是是
lockInfo否NoNo
netstatNoNoNo
ping是是是
profile作为一种 PaaS 服务,这将由 Azure 管理。
serverStatus否No否
shardConnPoolStatsMongoDB 5.0 中已弃用
top否NoNo
validate是是是
whatsmyuri是是是
系统事件审核命令logApplicationMessage否No否

运算符

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

注意

$lookup 聚合还不支持使用使用“let”的变量表达式。 “collStats”和“dbStats”中的 AvgObjsize 和 size 仅适用于文档大小小于 2KB 的情况。

类别命令功能
v5.0v6.0v7.0
比较查询运算符$eq是是是
$gt是是是
$gte是是是
$in是是是
$lt是是是
$lte是是是
$ne是是是
$nin是是是
逻辑查询运算符$and是是是
$not是是是
$nor是是是
$or是是是
元素查询运算符$exists是是是
$type是是是
评估查询运算符$expr是是是
$jsonSchema否NoNo
$mod是是是
$regex是是是
$text是是是
$where否No否
地理空间运算符$geoIntersects是是是
$geoWithin是是是
$box是是是
$center是是是
$centerSphere是是是
$geometry是是是
$maxDistance是是是
$minDistance是是是
$polygon是是是
$near是是是
$nearSphere是是是
数组查询运算符$all是是是
$elemMatch是是是
$size是是是
位查询运算符$bitsAllClear是是是
$bitsAllSet是是是
$bitsAnyClear是是是
$bitsAnySet是是是
投影运算符$是是是
$elemMatch是是是
$meta是是是
$slice是是是
杂项查询运算符$comment否NoNo
$rand是是是
$natural否No否
字段更新运算符$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否NoNo
$rand是是是
$sampleRate否No否
对象表达式运算符$mergeObjects是是是
$objectToArray是是是
$setField是是是
集表达式运算符$allElementsTrue是是是
$anyElementTrue是是是
$setDifference是是是
$setEquals是是是
$setIntersection是是是
$setIsSubset是是是
$setUnion是是是
字符串表达式运算符$concat是是是
$dateFromString否NoNo
$dateToString是是是
$indexOfBytes是是是
$indexOfCP是是是
$ltrim是是是
$regexFind是是是
$regexFindAll是是是
$regexMatch是是是
$replaceOne是是是
$replaceAll是是是
$rtrim是是是
$split是是是
$strLenBytes是是是
$strLenCP是是是
$strcasecmp是是是
$substr是是是
$substrBytes是是是
$substrCP是是是
$toLower是是是
$toString是是是
$trim是是是
$toUpper是是是
文本表达式运算符$meta是是是
时间戳表达式运算符$tsIncrement是是是
$tsSecond是是是
三角表达式运算符尚不支持。
类型表达式运算符$convert是是是
$isNumber是是是
$toBool是是是
$toDate是是是
$toDecimal是是是
$toDouble是是是
$toInt是是是
$toLong是是是
$toObjectId是是是
$toString是是是
$type是是是
累加器($group、$bucket、$bucketAuto、$setWindowFields)$accumulator否NoNo
$addToSet是是是
$avg是是是
$bottom否No
$bottomNNoNo
$count是是是
$first是是是
$firstN是是是
$last是是是
$lastN是是是
$max是是是
$maxN否No
$medianNoNoNo
$mergeObjects是是是
$min是是是
$percentile否NoNo
$push是是是
$stdDevPop否NoNo
$stdDevSampNoNoNo
$sum是是是
$top否No
$topNNo否
累加器(在其他阶段)$avg否NoNo
$first是是是
$last是是是
$max否NoNo
$medianNoNoNo
$minNoNoNo
$percentileNoNoNo
$stdDevPopNoNoNo
$stdDevSampNoNoNo
$sumNoNo否
变量表达式运算符尚不支持。
窗口运算符尚不支持。
条件表达式运算符$cond是是是
$ifNull是是是
$switch是是是
聚合管道阶段$addFields是是是
$bucket否NoNo
$bucketAutoNoNoNo
$changeStreamNoNoNo
$changeStreamSplitLargeEventNoNoNo
$collStats是是是
$count是是是
$densify否No
$documentsNoNo
$facet是是是
$fill否No
$geoNear是是是
$graphLookup是是是
$group是是是
$indexStats是是是
$limit是是是
$listSampledQueries否NoNo
$listSearchIndexesNoNoNo
$listSessionsNoNoNo
$lookup是是是
$match是是是
$merge否NoNo
$outNoNoNo
$planCacheStatsNoNoNo
$project是是是
$redact否NoNo
$replaceRoot是是是
$replaceWith是是是
$sample是是是
$search是是是
$searchMeta是是是
$set是是是
$setWindowFields否NoNo
$skip是是是
$sort是是是
$sortByCount是是是
$unionWith否NoNo
$unset是是是
$unwind是是是
$shardedDataDistribution否NoNo
$changeStreamNoNoNo
$currentOp是是是
$listLocalSessions否NoNo
$documentsNoNo否
聚合表达式中的变量NOW否NoNo
ROOT是是是
REMOVE是是是
CURRENT是是是
CLUSTER_TIME否NoNo
DESCENDNoNoNo
PRUNENoNoNo
KEEPNoNoNo
SEARCH_METANoNoNo
USER_ROLESNoNo否

索引和索引属性

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

注意

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

索引

命令支持
单字段索引是
复合索引是
多键索引是
文本索引是
通配符索引是
地理空间索引是
哈希索引是
矢量索引(仅在 Cosmos DB 中可用)是是,使用矢量搜索

索引属性

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

后续步骤