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 支持以下数据库命令:

类别命令支持
聚合命令聚合是
count是
distinct是
mapReduce已放弃
身份验证命令authenticate是
getnonce是
logout是
地理空间命令geoSearch已放弃
查询计划缓存命令否不是
管理命令cloneCollectionAsCapped否No. 目前不支持固定集合。
collMod是部分
compact否不是
connPoolSync已放弃
convertToCapped否No. 目前不支持固定集合。
create是部分
createIndexes是
currentOp是
drop是
dropDatabase是
dropConnections作为一种 PaaS 服务,这将由 Azure 管理。
dropIndexes是
filemd5否不是
fsync作为一种 PaaS 服务,这将由 Azure 管理。
fsyncUnlock作为一种 PaaS 服务,这将由 Azure 管理。
getDefaultRWConcern是
getClusterParameterNo不是
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是
unsetSharding已放弃
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
reshardCollection否不是
查询和写入操作命令change streamsNo不是
delete是
find是
findAndModify是
getLastError是
getMore是部分
insert是
resetError已放弃
update是
会话命令abortTransaction是
commitTransaction是
endSessions是
killAllSessionsNo不是
killAllSessionsByPatternNo不是
killSessions是
refreshSessionsNo不是
startSession是
诊断命令availableQueryOptionsNo不是
buildInfo是
collStats是
connPoolStats否不是
connectionStatus是部分
dataSizeNo不是
dbHashNo不是
dbStats否不是
driverOIDTest作为一种 PaaS 服务,这将由 Azure 管理。
explain是
features作为一种 PaaS 服务,这将由 Azure 管理。
getCmdLineOpts是
getLog是
hostInfo是部分
_isSelfNo不是
listCommands是
lockInfoNo不是
netstatNo不是
ping是
profile作为一种 PaaS 服务,这将由 Azure 管理。
serverStatus是
shardConnPoolStats已放弃
topNo不是
validate是
whatsmyuri是
系统事件审核命令logApplicationMessage否不是

运算符

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

注意

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

类别运算符支持
比较查询运算符$eq是
$gt是
$gte是
$in是
$lt是
$lte是
$ne是
$nin是
逻辑查询运算符$and是
$not是
$nor是
$or是
元素查询运算符$exists是
$type是
评估查询运算符$expr是
$jsonSchemaNo不是
$mod是
$regex是
$text是
$where否不是
地理空间运算符否不是
数组查询运算符$all是
$elemMatch是
$size是
位查询运算符$bitsAllClear是
$bitsAllSet是
$bitsAnyClear是
$bitsAnySet是
投影运算符$是
$elemMatch是
$meta是
$slice是
杂项查询运算符$commentNo不是
$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是
$mapNo不是
$maxNNo不是
$minNNo不是
$objectToArray是
$range是
$reduceNo不是
$reverseArray是
$size是
$slice是
$sortArrayNo不是
$zip否不是
位运算符$bitAnd是
$bitNot是
$bitOr是
$bitXor是
布尔表达式运算符$and是
$not是
$or是
比较表达式运算符$cmp是
$eq是
$gt是
$gte是
$lt是
$lte是
$ne是
自定义聚合表达式运算符不支持。
数据大小运算符$bsonSize是
$binarySize是
日期表达式运算符$dateAddNo不是
$dateDiffNo不是
$dateFromPartsNo不是
$dateFromStringNo不是
$dateSubtractNo不是
$dateToParts是
$dateToString是
$dateTruncNo不是
$dayOfMonth是
$dayOfWeek是
$dayOfYear是
$hour是
$isoDayOfWeek是
$isoWeek是
$isoWeekYear是
$millisecond是
$minute是
$month是
$second是
$toDate是
$week是
$year是
字面量表达式运算符$literal是
其他运算符$getFieldNo不是
$rand是
$sampleRate否不是
对象表达式运算符$mergeObjects是
$objectToArray是
$setField是
集表达式运算符$allElementsTrue是
$anyElementTrue是
$setDifference是
$setEquals是
$setIntersection是
$setIsSubset是
$setUnion是
字符串表达式运算符$concat是
$dateFromStringNo不是
$dateToString是
$indexOfBytes是
$indexOfCP是
$ltrim是
$regexFind是
$regexFindAll是
$regexMatch是
$replaceOne是
$replaceAll是
$rtrim是
$split是
$strLenBytes是
$strLenCP是
$strcasecmp是
$substr是
$substrBytes是
$substrCP是
$toLower是
$toString是
$trim是
$toUpper是
文本表达式运算符$meta是
时间戳表达式运算符不支持。
三角表达式运算符不支持。
类型表达式运算符$convert是
$isNumber是
$toBool是
$toDate是
$toDecimal是
$toDouble是
$toInt是
$toLong是
$toObjectId是
$toString是
$type是
累加器($group、$bucket、$bucketAuto、$setWindowFields)$accumulatorNo不是
$addToSetNo不是
$avg是
$bottomNo不是
$bottomN否不是
$count/td>是
$first是
$firstN是
$last是
$lastN是
$max是
$maxNNo不是
$medianNo不是
$mergeObjectsNo不是
$min是
$percentileNo不是
$pushNo不是
$stdDevPopNo不是
$stdDevSampNo不是
$sum是
$topNo不是
$topN否不是
累加器(在其他阶段)$avgNo不是
$first是
$last是
$maxNo不是
$medianNo不是
$minNo不是
$percentileNo不是
$stdDevPopNo不是
$stdDevSampNo不是
$sum否不是
变量表达式运算符不支持。
窗口运算符不支持。
条件表达式运算符$cond是
$ifNull是
$switch是
聚合管道阶段$addFields是
$bucketNo不是
$bucketAutoNo不是
$changeStreamNo不是
$changeStreamSplitLargeEventNo不是
$collStats是
$count是
$densifyNo不是
$documentsNo不是
$facet是
$fillNo不是
$geoNearNo不是
$graphLookupNo不是
$group是
$indexStats是
$limit是
$listSampledQueriesNo不是
$listSearchIndexesNo不是
$listSessionsNo不是
$lookup是
$match是
$mergeNo不是
$outNo不是
$planCacheStatsNo不是
$project是
$redactNo不是
$replaceRoot是
$replaceWith是
$sample是
$search是
$searchMeta是
$set是
$setWindowFieldsNo不是
$skip是
$sort是
$sortByCount是
$unionWithNo不是
$unset是
$unwind是
$shardedDataDistributionNo不是
$changeStreamNo不是
$currentOp是
$listLocalSessionsNo不是
$documents否不是

索引和索引属性

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

注意

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

索引

命令支持
单字段索引是
复合索引是
多键索引是
文本索引是
地理空间索引否不是
哈希索引是

索引属性

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

后续步骤