4.0 版本
(1)跨文档事务支持 (ACID)
首个支持跨文档事务的NoSQL云数据库,将文档模型的速度,灵活性和功能与ACID保证相结合。现在,使用MongoDB解决各种用例变得更加容易。
(4.0 的事务存在最大修改 16MB、事务执行时间不能过长的限制)
(2)40%迁移速度提升
并发的读取和写入,使得新增分片shard迁移性能提升了约 40%, 新增节点能更快的承载业务压力。
(3)读性能大幅扩展
4.0版本借助事务特性,使得备节点不再因为同步日志而阻塞读取请求。
(4)Change Stream 增强
在MongoDB3.6之前,如果我们希望对MongoDB数据库中的数据变动进行监听,通常是通过 “监听并回放oplog”。从MongoDB3.6开始支持的 Change Streams打破了这个僵局。 Change Streams使得数据的变动监听变得简单易用。如果你只需要针对某一个collection进行变动监听,MongoDB3.6就可以满足你的需求。在4.0版本中我们可以针对若干个数据库或者整个实例(复制集或者sharding)进行变动监听。与watch()
某一个collection不同,4.0中我们可以watch()
某个数据库或者整个实例。
4.2 版本
(1)分布式事务
4.2 支持分布式事务,MongoDB 采用二阶段提交的方式,实现在多个 Shard 间发生的修改,要么同时发生,要么都不发生,保证事务的 ACID 特性。
在使用上,4.2 的分布式事务跟 4.0 副本集事务使用方式完全一样,用户无需关心后端数据如何分布。
(2)高可用
在 4.0 提供了 Retryable Write 功能,在新的 4.2 版本,MongoDB 增加了 Retryable Read 功能,对于一些临时的网络问题,用户无需自己实现重试逻辑,MongoDB 会自动重试处理,保证用户业务的连续性。
(3)Index 增强,增加了Wildcard Index 类型
MongoDB 4.2 引入 Wildcard Index,可以针对一系列的字段自动建索引,满足丰富的查询需求。
(4)字段级别加密
MongoDB 除了支持 SSL、TDE 等安全机制,在 4.2 引入「字段级加密」的支持,实现对用户JSON文档的Value 进行自动加密。整个过程在 Driver 层完成,传输、存储到服务端的文档Value都是密文,MongoDB 4.2 Drvier 支持丰富的加密策略,可以针对集合、字段维度开启加密,加密过程对开发者完全透明。