版本兼容性
主要介绍了DDS各版本兼容MongoDB特性说明、聚合操作兼容性说明以及DDS不同实例版本支持的特性差异。
DDS各版本兼容MongoDB特性说明
| 特性分类 | 特性详情 | DDS 4.0 | DDS 4.2 | DDS 4.4 | DDS 5.0 | 社区版 MongoDB 4.2 | 社区版 MongoDB 4.4 | 社区版 MongoDB 5.0 |
|---|---|---|---|---|---|---|---|---|
| 数据库命令 | setFeatureCompatibilityVersion命令在MongoDB中用来控制版本间的兼容性。DDS从4.2版本开始高版本特性默认开启,不再用该命令管理版本兼容性。 | √ | × | × | × | √ | √ | √ |
| find命令支持allowDiskUse字段,该字段允许MongoDB在处理非索引排序操作时使用磁盘上的临时文件来存储超过内存限制的数据。 | × | × | √ | √ | × | √ | √ | |
| projection新的语法和用法,例如
| × | × | √ | √ | × | √ | √ | |
| 时序集合 | 支持时间序列集合。 | × | × | × | √ | × | × | √ |
| 支持针对 metaField 创建地理索引。 | × | × | × | √ | × | × | √ | |
| 支持有约束的更新和删除操作。 | × | × | × | √ | × | × | √ | |
| 支持分片时间序列集合。 | × | × | × | × | × | × | × | |
| 支持时序集合压缩。 | × | × | × | √ | × | × | √ | |
| 分布式事务 | 支持分布式事务的功能。分布式事务是指分片集群和副本集上的多文档事务。从MongoDB 4.2开始,多文档事务(无论是在分片集群上还是副本集上)也称为分布式事务。 | × | √ | √ | √ | √ | √ | √ |
| 去除事务的16MB总大小限制。 | × | × | √ | √ | √ | √ | √ | |
| 需要使用支持4.2版本的驱动。 | × | √ | √ | √ | √ | √ | √ | |
| √ | √ | √ | √ | √ | √ | √ | |
| 支持通配符索引。 | √ | √ | √ | √ | √ | √ | √ | |
| 允许修改集群文档的分片键值。 | × | × | √ | √ | √ | √ | √ | |
| 调整分片键关联的字段。 | √ | √ | √ | √ | × | √ | √ | |
| 可以使用具有单个哈希字段的复合分片键对集合进行分片。 | × | × | √ | √ | × | √ | √ | |
| 片键长度大小限制,放开512字节限制。 | × | √ | √ | √ | × | √ | √ | |
| 多文档事务允许执行创建索引和集合(非分布式事务)。 | × | × | √ | √ | × | √ | √ | |
| $lookup & $graphLookup 操作支持分片集合 | × | × | √ | √ | × | × | √ | |
| 移除索引字段长度限制。 | √ | √ | √ | √ | √ | √ | √ | |
| 移除索引名字长度限制。 | √ | √ | √ | √ | √ | √ | √ | |
| 支持复合索引中包含hash索引。 | × | × | √ | √ | × | √ | √ | |
| 支持隐藏索引用于调测。 | √ | √ | √ | √ | × | √ | √ | |
| 集合命名空间限制。 <database>.<collection>长度从120提升到255字节。 | √ | √ | √ | √ | √ | √ | √ | |
| 其他优化特性 | Default Read and Write Concern 全局默认读写关注,涉及连接及命令读写上下文等。 | × | × | √ | √ | × | × | √ |
| 支持 jumbo chunk的迁移。 | × | × | √ | √ | × | × | √ | |
| 支持Hedge查询。 | × | × | √ | √ | × | × | √ | |
| dds mongos支持运行javascripts功能,以此来支持部分特殊的聚合算子。 | × | × | √ | √ | × | × | √ | |
| 非多文档事务下,部分读取操作支持读关注 "snapshot" | × | × | × | × | × | × | √ | |
| 支持 collMod 方法修改单字段 TTL 索引的超时时间 | × | × | × | √ | × | × | √ |
DDS各版本聚合操作说明
| 算子 | DDS 4.0版本 | DDS 4.2版本 | DDS 4.4版本 | DDS 5.0版本 | 社区版MongoDB 4.2版本 | 社区版MongoDB 4.4版本 | 社区版MongoDB 5.0版本 |
|---|---|---|---|---|---|---|---|
| $sin | √ | √ | √ | √ | √ | √ | √ |
| $cos | √ | √ | √ | √ | √ | √ | √ |
| $tan | √ | √ | √ | √ | √ | √ | √ |
| $asin | √ | √ | √ | √ | √ | √ | √ |
| $acos | √ | √ | √ | √ | √ | √ | √ |
| $atan | √ | √ | √ | √ | √ | √ | √ |
| $atan2 | √ | √ | √ | √ | √ | √ | √ |
| $asinh | √ | √ | √ | √ | √ | √ | √ |
| $acosh | √ | √ | √ | √ | √ | √ | √ |
| $atanh | √ | √ | √ | √ | √ | √ | √ |
| $degreesToRadians | √ | √ | √ | √ | √ | √ | √ |
| $radiansToDegrees | √ | √ | √ | √ | √ | √ | √ |
| $round | √ | √ | √ | √ | √ | √ | √ |
| $trunc | √ | √ | √ | √ | √ | √ | √ |
| $regexFind | √ | √ | √ | √ | √ | √ | √ |
| $regexFindAll | √ | √ | √ | √ | √ | √ | √ |
| $regexMatch | √ | √ | √ | √ | √ | √ | √ |
| $merge | √ | √ | √ | √ | √ | √ | √ |
| $planCacheStats | × | × | × | × | √ | √ | × |
| $replaceWith | √ | √ | √ | √ | √ | √ | √ |
| $set | √ | √ | √ | √ | √ | √ | √ |
| $unset | √ | √ | √ | √ | √ | √ | √ |
| NOW | √ | √ | √ | √ | √ | √ | √ |
| CLUSTER_TIME | √ | √ | √ | √ | √ | √ | √ |
| findAndModify | √ | √ | √ | √ | × | √ | √ |
| update | √ | √ | √ | √ | √ | √ | √ |
| $accumulator | √ | √ | √ | √ | × | √ | √ |
| $binarySize | √ | √ | √ | √ | × | √ | √ |
| $bsonSize | √ | √ | √ | √ | × | √ | √ |
| $first | √ | √ | √ | √ | × | √ | √ |
| $function | √ | √ | √ | √ | × | √ | √ |
| $last | √ | √ | √ | √ | × | √ | √ |
| $isNumber | √ | √ | √ | √ | × | √ | √ |
| $replaceOne | √ | √ | √ | √ | × | √ | √ |
| $unionWith | √ | √ | √ | √ | × | √ | √ |
| $dateAdd | × | × | √ | √ | × | × | √ |
| $dateSubtract | × | × | √ | √ | × | × | √ |
| $dateDiff | × | × | √ | √ | × | × | √ |
| $dateTrunc | × | × | √ | √ | × | × | √ |
| $rand | × | × | × | √ | × | × | √ |
| $sampleRate | × | × | × | √ | × | × | √ |
| $getField | × | × | √ | √ | × | × | √ |
| $setField | × | × | √ | √ | × | × | √ |
| $unsetField | × | × | √ | √ | × | × | √ |
| $setWindowFields | × | × | × | √ | × | × | √ |
| let | × | × | × | √ | × | × | √ |
| $expr (利用索引) | × | × | × | × | × | × | √ |
| $ifNull | × | × | × | √ | × | × | √ |
DDS各版本支持特性的说明
| 特性分类 | 特性 | 约束 | DDS 4.0 | DDS 4.2 | DDS 4.4 | DDS 5.0 | 备注 | |||||||
| 实例类型 | 单节点 | 副本集 | 集群 | 单节点 | 副本集 | 集群 | 单节点 | 副本集 | 集群 | 副本集 | 集群 | - | ||
| 实例管理 | 创建实例 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - |
| 删除实例 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 重启实例 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 重置密码 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 修改实例名称 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 修改实例端口 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 手动主备倒换 | - | √ | √ | √ | √ | √ | √ | × | √ | √ | √ | √ | - | |
| 实例列表导出 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 计算扩容 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 计算缩容 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 节点扩容 | - | - | √ | √ | - | √ | √ | √ | √ | √ | √ | √ | - | |
| 节点缩容 | - | - | × | × | - | × | × | × | × | × | × | × | - | |
| 存储扩容 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 存储缩容 | - | × | × | × | × | × | × | × | × | × | × | × | - | |
| 节点重启 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| OpenAPI | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| SDK | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 任务中心 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 标签管理 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 配额管理 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 网络管理 | EIP公网访问 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - |
| 修改内网IP | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 跨网段访问 | - | × | √ | × | × | √ | × | × | √ | × | √ | × | 4.2、4.4和5.0版本需要在相同VPC和子网下通过客户端进行访问。客户端如果是容器,使用默认网段“192.168.0.0/16”,“172.16.0.0/24”和“10.0.0.0/8”的IP可正常访问,使用非默认网段的IP则不能正常访问。 | |
| 可用区迁移 | - | × | √ | √ | × | √ | √ | × | √ | √ | √ | √ | 4.2、4.4和5.0版本创建实例时,建议选择多可用区。 | |
| 域名访问 | - | √ | √ | √ | √ | × | × | × | × | × | × | × | 4.2、4.4和5.0版本建议使用IP访问实例。 | |
| 安全管理 | 安全组 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - |
| SSL | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 实例回收站 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 存储加密 | - | √ | √ | √ | × | × | × | × | × | × | × | × | - | |
| 计费管理 | 单节点转副本集 | - | × | - | - | × | - | - | × | - | - | - | - | - |
| 按需模式 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 包周期模式 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | × | 5.0公测期间暂不支持包周期模式。 | |
| 按需转包周期 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | × | 5.0公测期间暂不支持包周期模式。 | |
| 包周期转按需 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | × | 5.0公测期间暂不支持包周期模式。 | |
| 版本管理 | 小版本手动升级 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - |
| 小版本自动升级 | - | × | × | × | × | × | × | × | × | × | × | × | - | |
| 大版本手动升级 | - | × | × | × | × | × | × | × | × | × | × | × | - | |
| 日志管理 | 慢日志查询 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - |
| 慢日志下载 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 慢日志脱敏 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 错误日志查询 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 错误日志下载 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 设置审计日志策略 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 审计日志查询 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 审计日志下载 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 参数管理 | 变更参数模板 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - |
| 参数模板创建 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 参数模板删除 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 参数模板修改 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 参数模板比较 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 备份恢复 | 自动备份 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - |
| 手动备份 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 删除备份 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 恢复到新实例 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 恢复到当前实例 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 恢复到已有实例 | - | × | × | × | × | × | × | × | × | × | × | × | - | |
| 设置自动备份策略 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 增量备份 | - | √ | √ | √ | × | √ | √ | × | √ | √ | √ | √ | - | |
| PITR | - | × | √ | √ | × | √ | √ | × | √ | √ | √ | √ | - | |
| 全量备份文件下载 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 增量备份文件下载 | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| 跨Region备份 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 跨Region恢复 | - | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 运维管理 | 创建数据库角色 | 仅API支持该功能 | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - |
| 创建数据库用户 | 仅API支持该功能 | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 删除数据库角色 | 仅API支持该功能 | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 删除数据库用户 | 仅API支持该功能 | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
| 秒级监控 | 最小周期5s | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | - | |
“√”表示支持,“×”表示不支持。