简介

  • MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。是NoSQL类型的数据库

一般爬虫使用的数据库,是根据项目来定的。如需求方指定了使用什么数据库、如果没指定,那么决定权就在爬虫程序员手里,如果自选的话,mysql 和mongodb 用的都是比较多的。但不同的数据库品种有各自的优缺点,不同的场景任何一种数据库都可以用来存储,但是某种可能会更好。比如如果抓取的数据之间的耦合性很高,关系比较复杂的话,那么mysql可能会是更好的选择。如果抓取的数据是分版块的,并且它们之间没有相似性或关联性不强,那么可能mongodb 会更好。

官方文档:https://docs.mongodb.com/

中文文档:https://www.mongodb.org.cn/

类型

  • 数据库

数据库是用于存储数据的物理容器,每个数据库在文件系统中都有属于自己的文件集。一台 MongoDB 服务器中可以创建多个数据库,并且每个数据库都是独立的,都有属于自己的集合和权限,而且不同数据库中的数据会放置在不同的文件中。

MongoDB 的默认数据库为“test”,该数据库存储在 data 目录中,您可以使用show dbs命令来查看所有的数据库列表,如下所示:

1
2
3
4
\> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB

注意:在使用show dbs命令时,若数据库中没有存储任何数据,则不会在列表中显示出来,也就是说只有非空数据库才能通过show dbs命令查看。

  • 集合

集合就是一组 MongoDB 文档的组合,类似于关系型数据库(例如 MySQL)中的数据表。集合存在于数据库中,且没有固定的结构,您可以向集合中插入不同格式或类型的数据。

  • 文档

文档是 MongoDB 中数据的基本单位,由 BSON 格式(一种计算机数据交换格式,类似于 JSON)的键/值对组成,类似于关系型数据库中的一行行数据,但要相对复杂一些。

文档具有动态模式,所谓动态模式就是同一集合中的文档不需要具有相同的字段,即使是相同的字段也可以是不同的类型,这与关系型数据库有很大的区别,也是 MongoDB 最突出的特点之一。

对比

关系型数据库 MongoDB 解释说明
database database 数据库
table collection 数据表/集合
row document 数据行/文档
column field 字段/域
index index 索引
table joins 表连接,MongoDB 中不支持
primary key primary key 主键,MongoDB 会自动将 _id 字段设置为主键