MongoDB 5.1的发布说明
重要:
MongoDB 5.1是一个快速版本,仅支持MongoDB Atlas。MongoDB5.1不支持在本地使用。有关更多信息,请参阅MongoDB版本控制。
MongoDB 5.1发布于2021年11月9日
集合
新的聚合阶段
MongoDB 5.1引入了以下聚合阶段:
阶段 | 描述 |
---|---|
$densify |
在缺少指定字段值的文档序列中创建新文档。 |
$documents |
从输入表达式返回字面文档。 |
新的聚合运算符=
MongoDB 5.1引入了以下聚合运算符:
运算符号 | 描述 |
---|---|
$tsSecond |
将时间戳中的秒数返回为long 。 |
$tsIncrement |
从时间戳返回long 的增量序数。 |
$geoNear接受let-bound
变量
从MongoDB 5.1开始,$geoNear
聚合阶段的near
参数支持let选项和绑定let选项。
$lookup和$graph查找与分片集合
从MongoDB 5.1开始,$lookup
和$graphLookup
聚合阶段支持from
参数中的硬化集合。
在之前版本的MongoDB中,$lookup
和$graphLookup
只允许from
集合中解分。
一般汇总改进
从MongoDB 5.1开始,当检测到amount
值溢出时,$dateSubtract
和$dateAdd
会报告错误。
时间序列集合
时间序列集合的地理索引
从MongoDB 5.1开始,您可以在时间序列集合的metaField
上使用地理索引。
更新和删除
从MongoDB 5.1开始,时间序列集合支持有限制的更新和删除操作。
分片时间序列集合
参见:
基于槽的查询执行引擎
从MongoDB 5.1开始,一个新的查询执行引擎用于符合条件的查询。如果使用基于插槽的查询执行引擎,则查询解释计划输出中包含新字段。
设置基于槽的查询执行计划缓存大小
您可以使用planCacheSize
参数为新查询引擎设置计划缓存的大小。
增加计划缓存大小为查询规划器添加更多缓存查询形状。这可以提高查询性能,但可以增加内存使用量。
更改流
从MongoDB 5.1开始,对更改流进行了优化,提供了更高效的资源利用率和一些聚合管道阶段的更快执行
索引
从MongoDB 5.1开始,您可以使用collMod
数据库命令将expireAfterSeconds
选项添加到现有的单字段非TTL索引中。
平台支持
从MongoDB 5.1.2开始,不再支持以下平台。
社区版
- RHEL-72-s390x
一般改进
为validate
命令添加了元数据选项
从MongoDB 5.1(和MongoDB 5.0.4)开始,validate
命令和thedbdb.collection.validate()
帮助方法具有一个新的元数据选项,可以快速验证集合并检测无效的索引选项。
serverStatus
产出变化
serverStatus
在其输出中包含以下新字段:
汇总指标
metrics.operatorCounters.match
指示匹配表达式运行频率的文档。Opcode计数器
opcounters.deprecated
计算不建议使用的操作码运行频率。分片统计
使用getMore命令执行慢速查询时的额外日志记录字段
从MongoDB 5.1开始,当getMore
命令记录为慢查询时,queryHash和planCacheKey字段将添加到慢查询日志消息和分析器日志消息中。
架构验证错误包含描述字段
从MongoDB 5.1开始,当文档模式验证失败时,MongoDB在错误响应中包含验证title
和description
。当规则不立即明确时,例如使用正则表达式时,您可以使用这些字段来解释验证。
例如,请参阅指定JSON模式验证。
复本集
启动或添加碎片时,断言群集范围写入关注已设置
从MongoDB 5.1开始,在启动、重新启动或添加shard server withshsh.addShard()
时,必须设置集群宽写入关注(CWWC)。
如果未设置CWWC
,并且碎片配置为默认写入问题为{ w : 1 }
,则碎片服务器将无法启动或添加,并返回错误。
有关如何计算默认写入问题的详细信息,请参阅默认写入问题计算。
rs.reconfig
集群宽写入问题验证
从MongoDB 5.1开始,您必须先设置集群宽写入关注(CWWC),然后发布任何reconfigs
,否则将更改新副本集成员的默认写入关注。
storeFindAndModifyImagesInSideCollection
参数
从MongoDB 5.1开始,storeFindAndModifyImagesInSideCollection
参数确定可重试findAndModify
命令所需的临时文档是否存储在侧面集合(config.image_collection
)中。
分片集群
mongod
分片集群和配置服务器更改
从MongoDB 5.1开始,当使用--configsvr
选项启动mongod
,您还必须指定--replSet
。
从MongoDB 5.1开始,当使用--shardsvr
选项启动mongod
,您还必须指定--replSet
。
安全
SELinux
从MongoDB 5.1开始,有一个新的SE Linux策略用于:
- MongoDB企业服务器
- MongoDB社区版服务器
在Red Hat Linux上运行。SELinux策略适用于使用rpm
安装程序包的默认安装。
报告问题
要报告问题,请参阅https://github.com/mongodb/mongo/wiki/Submit-Bug-Reports关于如何为MongoDB服务器或相关项目之一提交JIRA票据的指导。