MongoDB 4.0 RC 版本强势登陆

本文涉及的产品
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,通用型 2核4GB
简介:

MongoDB 因其灵活的文档模型、可扩展分布式设计广受开发者喜爱,在此基础上,MongoDB 4.0 推出了更强大的功能支持,目前4.0第一个RC版本已经发布,本文将介绍 MongoDB 4.0 核心的一些新特性。

多文档事务(Multi-Document ACID Transaction)

结合 MongoDB 文档模型内嵌数组、文档的支持,目前的单文档事务能满足绝大部分开发者的需求。为了让 MongoDB 能适应更多的应用场景,让开发变得更简单,MongoDB 4.0 将支持复制集内部跨一或多个集合的多文档事务,保证针对多个文档的更新的原子性。而在未来的 MongoDB 4.2 版本,还会支持分片集群的分布式事务。

MongoDB 的事务接口非常简单,开发者只需要将「需要保证原子性的更新序列」放到一个 session 的 开始事务提交事务之间即可。

如下是 Python API 使用事务的例子

with client.start_session() as s:
    s.start_transaction():
    try:
        collection.insert_one(doc1, session=s)
        collection.insert_one(doc2, session=s)
    except:
        s.abort_transaction()
        raise
    s.commit_transaction()

如下是 Java API 使用事务的例子

try (ClientSession clientSession = client.startSession()) {
     clientSession.startTransaction();
     try {
         collection.insertOne(clientSession, docOne);
         collection.insertOne(clientSession, docTwo);
         clientSession.commitTransaction();
     } catch (Exception e) {
         clientSession.abortTransaction();
     }
}

Path_to_Transactions_new_49x7buaj6x

事务是 MongoDB 开发团队经过3年多努力的结果,从3.0版本引入 WiredTiger 、到3.2版本支持 ReadConcern、3.6 支持 Causal Consistency 等很多工作都是在为事务功能做准备,最终在4.0版本将整个事务的API提供给用户,帮助用户更好的构建应用。

聚合类型转换( Aggregation Pipeline Type Conversions)

灵活的文档模型是 MongoDB 相比传统关系型数据库的一大优势,应用开发者无需为存储的数据预先定义结构(或者模式),这使得开发者能快速的应对开发需求的迭代;在灵活的同时,MongoDB 还提供了 schema validation 功能,使得开发者可以根据需要定义文档数据的模型。

MongoDB 的文档允许用户灵活的写入各种类型的数据字段,这给消费数据带了一定的复杂性,比如一些数据分析的场景,应用通常希望某个字段的数据拥有统一的类型,以方便数据处理。

MongoDB 4.0 引入了新的聚合操作符 $convert, 允许用户在 aggregation pipeline 里将文档的字段转换成统一的类型输出,使得数据消费端,比如 MongoDB BI 工具、Spark Connectors 以及其他 ETL 工具能更简单的处理 MongoDB 数据。

非阻塞的备节点读(Non-Blocking Secondary Reads)

为了确保备节点上的读与主节点保持相同的因果一致性语义,MongoDB 备节点在批量应用 oplog 的时候会阻塞读请求,这使得在高写入负载下,备节点上读的平均延时通常比主节点更高。

借助事务功能中 storage engine timestamps and snapshots 的实现,引擎层可以很容易的实现「指定时间戳快照读取的功能」,使得备节点上的读请求无需阻塞等待就能读到一致时间点的数据。这个特性将极大的提升 MongoDB 读扩展的能力。

迁移速度提升40%(40% Faster Data Migrations)

应用在不断演进过程中,其负载特性也在不断发生变化,这就要求数据库具备扩展的能力,及时适应应用的负载变化。MongoDB 分片集群支持实时的添加、移除shard 节点,并能在各个 shard 之间自动迁移数据来均衡负载。

MongoDB 4.0 支持在迁移数据的过程中,并发的读取(源端)和写入(目标端),使得迁移的性能提升了约 40%, 使得新添加的节点能更快的承载业务压力,让分片集群发挥最佳效果。

扩展修改订阅(Extensions to Change Streams)

MongoDB 3.6 推出了修改订阅( Change Streams)的功能,使得用户能实时的获取数据的修改,同时通过 Change Streams 还能很方便的实现多数据中心跨复制集的数据同步。MongoDB 4.0 进一步扩展 Change Streams 功能,可以实现分片集群维度的修改订阅。

开始体验 MongoDB 4.0 RC

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
4月前
|
存储 JSON 分布式计算
MongoDB【部署 01】mongodb最新版本6.0.5安装部署配置使用及mongodb-shell1.8.0安装使用(云盘分享安装文件)
MongoDB【部署 01】mongodb最新版本6.0.5安装部署配置使用及mongodb-shell1.8.0安装使用(云盘分享安装文件)
152 0
|
5月前
|
NoSQL 前端开发 MongoDB
mongoDB入门教程五:搭建一个简单的登陆注册界面
mongoDB入门教程五:搭建一个简单的登陆注册界面
108 0
|
NoSQL Linux MongoDB
mongodb如何快速进行版本升级
因为3.2内存设置的一些问题,需要升级到3.4,网上查了一下mongo不能跨版本升级,所以只能3.2先升级到3.4,再往上升级。 目前3.4足够我使用,所以升级到3.4就可以了。但是网上升级都比较复杂,因为都是大系统,而我只是一个小系统,单一的服务和数据库。所以网上的文章基本没有,我参考了一些和官网的一些,总结了简单的升级过程。 文章中的系统环境是CentOS
546 0
|
7月前
|
SQL 运维 NoSQL
MongoDB 6.0.3版本Balancer改动
Balancer不再执行自动分割,chunk无法作为数据均衡判断依据
|
运维 NoSQL Cloud Native
【活动】阿里云MongoDB版本升级实践及新特性介绍
本次线上研讨会将对MongoDB 4.4/5.0/6.0 新特性进行介绍,以及如何在阿里云上进行版本升级的最佳实践分享
【活动】阿里云MongoDB版本升级实践及新特性介绍
|
NoSQL Ubuntu Linux
Linux服务器安装部署最新稳定版本mongoDB社区版- Ubuntu-20.04版本
Linux服务器安装部署最新稳定版本mongoDB社区版- Ubuntu-20.04版本
998 0
Linux服务器安装部署最新稳定版本mongoDB社区版- Ubuntu-20.04版本
|
NoSQL MongoDB 数据库
【活动】阿里云MongoDB 6.0版本正式上线!产品专家带你一览新功能!
正如阿里云发布MongoDB 5.0时承诺的更快发布频率,年度大版本阿里云版MongoDB 6.0 也于2022年正式跟广大数据库爱好者们见面了。
1238 0
【活动】阿里云MongoDB 6.0版本正式上线!产品专家带你一览新功能!
|
NoSQL MongoDB 数据库
MongoDB的安装与配置(简单版本、Win7)
MongoDB的安装与配置(简单版本、Win7)
529 0
MongoDB的安装与配置(简单版本、Win7)
|
存储 JSON NoSQL
4.0版本以上mongodb在Windows下载安装-添加Windows服务-安装可视化工具管理数据教程
4.0版本以上mongodb在Windows下载安装-添加Windows服务-安装可视化工具管理数据教程
158 0
4.0版本以上mongodb在Windows下载安装-添加Windows服务-安装可视化工具管理数据教程
|
存储 JSON NoSQL
暂缓MongoDB 4.4.2 、4.4.3、 4.4.4版本升级: 存在严重Bug
暂缓MongoDB 4.4.2 、4.4.3、 4.4.4版本升级: 存在严重Bug
227 0
暂缓MongoDB 4.4.2 、4.4.3、 4.4.4版本升级: 存在严重Bug

相关产品

  • 云数据库 MongoDB 版