MongoDB 3.4学习指南:精通新特性

1. MongoDB 3.4简介

MongoDB是一个开源、分布式文档数据库,它是将数据以BSON(Binary JSON)二进制格式进行存储的。MongoDB3.4是MongoDB最新的稳定版本,它带来了一些新特性,包括基于MongoDB Compass的可视化分析工具,以及增加了多文档事务、增加了一些新的聚合操作符等功能。

1.1 MongoDB Compass

MongoDB Compass是一个可视化分析工具,可以方便的进行数据分析和洞察。它带来了一个新的图形用户界面(GUI)工具,可以提供对你的MongoDB数据的更好的可视化控制。

其中,Compass还有一个新功能就是MongoDB的Schema分析器,它可以根据你的数据集,在MongoDB文档中数据类型的分布、每个字段的值的分布以及对数据进行分块等等。

1.2 增加了多文档事务

在MongoDB 3.4版本中,增加了对多文档事务的支持。这个新功能在MongoDB中是一个重要的改变,使得MongoDB可以在复杂的企业环境中进行更加强大的数据管理。

这个功能将帮助开发人员更好的处理操作过程中的错误,可以在同一文档事务中执行多个操作,某个操作失败时,整个事务都会自动回滚操作,使你的数据库保持在一致的状态。这是避免脏数据插入的好方法。

1.3 新增聚合操作符

在MongoDB 3.4中新增加了几个聚合操作符,这些聚合操作符可以帮助你更好的处理一些数据聚合问题。

例如,$sample操作符可以从集合中随机抽样一定数量的文档,而$lookup操作符可以将来自不同集合的文档连接起来。

2. MongoDB 3.4的使用

2.1 安装MongoDB 3.4

安装MongoDB 3.4非常简单,你可以从MongoDB的官方网站下载稳定版本的MongoDB,并进行安装。在安装完成后,可以通过以下命令验证MongoDB是否正确安装。

mongod --version

如果你看到了MongoDB成功安装,你可以通过以下命令在你的机器上启动MongoDB实例。

mongod

2.2 连接MongoDB

连接MongoDB非常简单,你可以通过以下Python代码将自己连接到数据库。

from pymongo import MongoClient

# 创建 MongoDB 客户端

client = MongoClient('localhost', 27017)

# 连接到相应的数据库

db = client.test_database

# 或者 db = client['test_database']

2.3 创建集合

可以通过以下代码在MongoDB中创建集合。

# 创建新的集合

>>> collection = db.test_collection

# 或者 collection = db['test-collection']

2.4 插入文档

可以通过以下的代码将数据插入到集合中:

# 创建一个文档

>>> import datetime

>>> post = {"author": "Mike",

... "text": "My first blog post!",

... "tags": ["mongodb", "python", "pymongo"],

... "date": datetime.datetime.utcnow()}

# 插入文档

>>> posts = db.posts

>>> post_id = posts.insert_one(post).inserted_id

>>> post_id

ObjectId('...')

在上面的代码中,我们将一个包含了几个字段的文档插入到了MongoDB中,其中文档的_id自动生成,并且返回给了我们。

3. MongoDB 3.4的性能提升

3.1 WiredTiger存储引擎

WiredTiger是MongoDB3.4的默认存储引擎,而且它带来了很多对性能的提升。使用WiredTiger存储引擎后,MongoDB在写入方面的速度提高了65%左右,并且能够支持更高的并发。

具体而言,WiredTiger使用了一种命名空间的分离策略,将数据进行保存和索引,达到了更高的写入及查询效率。另外,小文档的读写速度也比MMapv1存储引擎快。

3.2 存储空间管理

在MongoDB 3.4版本中,提供了更好的存储空间管理能力。现在,MongoDB可以在重建数据库索引、合并和压缩(daily smart compaction)、实时压缩(idletime compression)和滚动更新时,动态地压缩数据。(在MMapv1中,压缩的数据需要对数据文件进行归档,这样会导致存储空间的大量浪费)。

4. 结论

在MongoDB 3.4版本中,带来了很多值得期待的改变和新特性。MongoDB Compass作为一个可视化分析工具,可以帮助数据库管理者更加直观的了解和控制当前的数据库。而对于开发人员而言,增加了多文档事务和新增聚合操作符等功能,可以更加轻松的应对数据管理和处理过程中的复杂问题。此外,WiredTiger存储引擎的运用和存储空间管理算法的改进,使得MongoDB在查询及写入效率上有了很大提升。没有任何疑问,MongoDB 3.4是一个更加优秀的版本,值得你去使用和尝试。

数据库标签