MongoDB 最近发布了最新的 4.0 版本。
毫无疑问,这一版本的主要特性是支持多文档 ACID 事务。MongoDB 向与关系型数据库产品的融合迈出了一大步,现在支持会话的概念,并可以使用 start_transaction() 和 commit_transaction() 方法将多个数据库命令包含在单个 MongoDB 事务中。
MongoDB 的事务遵循著名的 ACID 模型。原子性可以确保属于同一个事务的命令要么全部被执行要么都不执行,永远不会有剩余或出现部分数据。一致性是指数据库始终保持从一个有效状态转换到另一个有效状态,永远不会处于无效状态。隔离保证了多个事务可以同时执行,而其中任何一个事务都无法查看其他事务的部分结果。同时执行多个事务与顺序执行它们具有相同的最终结果。持久性可以保证即使在系统出现故障的情况下,已提交的事务也将保持持久性。
MongoDB 的多文档事务仅适用于使用 WiredTiger 存储引擎的服务器,且当前仅支持单个副本集。4.2 版本将带来分片集群支持。
多文档事务具有一些限制,例如无法影响数据库目录(即列出索引和集合),并且无法执行不属于 CRUD 和信息列表范围内的命令。
这些事务只能使用 readPreference 和 readConcern,local 或 majority。事务内的 readPreference 会覆盖掉在集合、数据库和客户端级别设置的 readPreference。
查询游标在事务中是隔离的,这意味着事务中的 getMore 操作只能在内部使用,然后事务外的只能在事务外使用。MongoDB 提供了大量用于支持事务操作的命令。
MongoDB Stitch 是 MongoDB 提供的一个无服务器平台,用于快速开发可安全访问 MongoDB 服务的客户端应用程序,现已公开发布。MongoDB Stitch 通过 JavaScript 函数的方式提供无服务器功能,还提供了 QueryAnywhere,让客户端代码可以安全地从 Web 或移动应用程序查询 MongoDB 服务器。在数据库发生变更时,触发器将做出一些动作,类似于 RDBMS 的触发器。即将推出的 Mobile Sync 将允许 MongoDB 服务器和移动客户端(已经测试版中发布的 MongoDB mobile )之间进行自动数据同步。
MongoDB 4.0 版引入了 double、string、objectId、boolean、date、integer、long 和 decimal 类型之间的类型转换。这样可以增强数据库内的数据转换,减少对ETL 过程的依赖。
测试版中还包括了 MongoDB Enterprise Kubernetes Operator ,用于在 Kubernetes 集群中部署 MongoDB,同时利用 MongoDB Ops Manager 的功能。开发人员可以下载最新版本,也可以试用 MongoDB Atlas 提供的在线服务。
查看英文原文: MongoDB 4.0 Released
评论