章节索引 :

MongoDB 数据库的简单使用和配置

这节课我们主要是学习 MongoDB 数据库的基本操作和使用,爬虫在爬取到数据之后可以把数据需要把数据保留下来供其他工作人员去使用。如果数据量不是很大的话可以保存在文件中,但是如果数据量很大那么保存在文件中就非常困难,先不说存储完数据之后的文件大小非常大,很占空间,单就是往文件中写入数据的速度就很慢。

但是幸好我们还有另外一个选择,那就是将爬取到的数据存入数据库中。因为现在 JSON 数据格式的流行,我们一般都会选择 JSON 来作为数据的传输格式,所以非常适合 JSON 数据存储的 MongoDB 数据库就获得了我们爬虫程序员的青睐,所以这节课我们就来学习下 MongoDB 的:

  • MongoDB 基本概念;
  • MongogDB 主要特点;
  • MongoDB 常见操作;
  • Python 操作 MongoDB。

通过本节课的学习你会掌握

  • MongoDB 基本操作,能够操作创建数据库,并且进行简单的 CURD 功能。

  • 使用 Python 进行数据库的 CURD.

1. MongoDB 简介

MongoDB 是一个文档型数据库,由 C++ 编写,功能丰富,支持复杂的数据类型,支持数据建立索引,性能高,容易使用,方便部署。

主要特点如下:

  1. 面向集合存储,方便存储对象类型的数据;
  2. 支持语言丰富,Python,Java,C++ 等语言;
  3. 支持完全索引;
  4. 文件存储等格式为 JSON。

传统的关系型数据库以 MySQL 为例,一般是由数据库,表,记录三个层次组成,MongoDB 是由数据库,集合,文档对象组成。下表列出了 MongoDB 与 MySQL 的对比:

MySQL MongoDB 描述
database database 数据库
table collection 数据库表 / 集合
row document 数据库行 / 文档
column field 数据字段列 / 域
index index 索引
index index 索引

2. MongoDB 数据库的安装

MongoDB 的安装方式读者可以自行去查找,这里就不再赘述了。通过以下方式测试数据库是否安装运行成功:打开浏览器,输入如下网址,成功后,会返回如下结果

图片描述

下面我们来看下 MongoDB 的基本操作。

2.1 显示所有数据库

要查看本地所有的数据库需要运行下面的命令:

show dbs

效果展示:

2.3 创建一个集合

要查看本地所有的数据库需要运行下面的命令:

db.createCollection("test")

效果展示:

图片描述

2.4 往集合添加一条数据

要查看本地所有的数据库需要运行下面的命令:

db.test.insert({"name":"python", "version":3})
db.test.insert({"name":"java","version":1.8})

效果展示:

图片描述
图片描述

2.5 查询集合添加的数据

要查看本地所有的数据库需要运行下面的命令:

db.test.find()

效果展示:

图片描述

2.6 更改集合里的数据

要查看本地所有的数据库需要运行下面的命令:

 db.test.update({"_id": ObjectId("5e6b448452df331867ae1a9f")},{$set:{"version":2}})

效果展示:

图片描述

2.7 删除集合里的数据

要查看本地所有的数据库需要运行下面的命令:

 db.test.deleteOne({"name":"java"})

效果展示:

图片描述

3. 使用 pymongo 操作 MongoDB 数据库

第二部分中我们讲述了如何操作 MongoDB 数据库,但是在爬虫开发中我们没办法使用命令来操作 MongoDB 数据库。我们就要使用 Python 语言来操作 MongoDB 数据库,那么如何使用 Python 来操作数据库呢?
这个时候我们就需要使用 pymongo 包了。通过这个第三方的包,我们才可以通过 Python 语言来控制 MongoDB 的操作。

首先安装 pymongo 包:

pip install pymongo

效果展示:

图片描述

3.1 连接数据库,创建数据库和集合

在 pymongo 安装完成之后,我们接下来通过 Python 来连接本地和远程的 MongoDB 数据库。

from pymongo import MongoClient
#建立连接
client = MongoClient('mongodb://localhost:27017/')
#创建数据库new_db_for_py
db = client['new_db_for_py']
#创建集合new_data_set
collection = db.new_data_set

效果如下:
图片描述

3.2 插入数据

插入两组数据,分别为 Tony 和 Jack:

 data = {"name":"Tony", "age":18, "gender":"male"}

 data = {"name":"Jack", "age":30, "gender":"male"}

效果如下:
图片描述

3.3 查询数据

寻找名字为 Tony 的数据:

 collection.find_one({"name":"Tony"})

效果如下:

图片描述

3.4 更改数据

Tony = collection.find_one(condition)
Tony['age'] = 55
collection.update(condition, Tony)

效果如下:

图片描述

3.5 删除数据

 collection.remove({"name":"Tony"})

效果如下:

图片描述

再次查询 Tony,效果如下:

图片描述

查询为空,说明 Tony 的数据删除成功!

4. 小结

这一小节,我们学会了 MongoDB 的基本操作,以及在 Python 中的使用。

如果文件不是很大,持久化存储可以使用 TXT 或者 CSV 格式,写入和读取都比较方便。但是,当数据量很大的时候,而且需要存储 JSON 等格式的时候,推荐使用 MongoDB 进行持久化的存储。