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 | ||||
mapReduce | MongoDB 5.0 中已弃用 | |||
身份验证命令 | authenticate | |||
getnonce | 在 MongoDB 4.0 中已弃用 | |||
logout | MongoDB 5.0 中已弃用 | |||
地理空间命令 | geoSearch | MongoDB 5.0 中已弃用 | ||
查询计划缓存命令 | ||||
管理命令 | cloneCollectionAsCapped | 否,目前不支持带有上限的集合。 | ||
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 | ||||
shutdown | 作为一种 PaaS 服务,这将由 Azure 管理。 | |||
用户及角色管理命令 | 目前不受支持,但未来将通过 Azure Active Directory 提供。 | |||
复制命令 | Azure 可管理复制,消除了客户手动复制的必要性。 | |||
分片命令 | enableSharding | |||
isdbgrid | ||||
reshardCollection | ||||
shardCollection | ||||
unsetSharding | MongoDB 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 | ||||
resetError | MongoDB 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 | ||||
shardConnPoolStats | MongoDB 5.0 中已弃用 | |||
top | ||||
validate | ||||
whatsmyuri | ||||
系统事件审核命令 | logApplicationMessage |
运算符
下面是当前 Azure Cosmos DB for MongoDB vCore 上支持的运算符列表:
注意
$lookup
聚合还不支持使用使用“let”的变量表达式。
“collStats”和“dbStats”中的 AvgObjsize 和 size 仅适用于文档大小小于 2KB 的情况。
类别 | 命令 | 功能 | ||
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 | ||||
三角表达式运算符 | 尚不支持。 | |||
类型表达式运算符 | $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 | ||||
变量表达式运算符 | 尚不支持。 | |||
窗口运算符 | 尚不支持。 | |||
条件表达式运算符 | $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 | ||||
聚合表达式中的变量 | NOW | |||
ROOT | ||||
REMOVE | ||||
CURRENT | ||||
CLUSTER_TIME | ||||
DESCEND | ||||
PRUNE | ||||
KEEP | ||||
SEARCH_META | ||||
USER_ROLES |
索引和索引属性
Azure Cosmos DB for MongoDB vCore 支持以下索引和索引属性:
注意
创建唯一索引可在整个生成过程中获取针对集合的排他锁。 在操作完成前,集合都无法执行读取和写入操作。
索引
命令 | 支持 |
单字段索引 | |
复合索引 | |
多键索引 | |
文本索引 | |
通配符索引 | |
地理空间索引 | |
哈希索引 |
索引属性
命令 | 支持 |
TTL | |
独特 | |
部分 | |
不区分大小写 | |
稀疏 | |
背景 |