MongoDB文档存储

NoSQL,全称为 Not Only SQL,意为不仅仅是 SQL,泛指非关系型数据库。NoSQL 是基于键值对的,而且不需要经过 SQL 层的解析,数据之间没有耦合性,性能非常高。

非关系型数据库又可细分如下。

  • 键值存储数据库:代表有 Redis、Voldemort 和 Oracle BDB 等。

  • 列存储数据库:代表有 Cassandra、HBase 和 Riak 等。

  • 文档型数据库:代表有 CouchDB 和 MongoDB 等。

  • 图形数据库:代表有 Neo4J、InfoGrid 和 Infinite Graph 等。

对于爬虫的数据存储来说,一条数据可能存在因某些字段提取失败而缺失的情况,而且数据可能随时调整。另外,数据之间还存在嵌套关系。如果使用关系型数据库存储这些数据,一是需要提前建表,二是如果数据存在嵌套关系,还需要进行序列化操作才可以存储,这非常不方便。如果使用非关系型数据库,就可以避免这些麻烦,更简单、高效。

本节中,我们主要介绍 MongoDB 存储操作。

MongoDB 是由 C++ 语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容的存储形式类似 JSON 对象。它的字段值可以包含其他文档、数组及文档数组、非常灵活。本节我们就来看看 Python3 下 MongoDB 的存储操作。

准备工作

连接 MongoDB

指定数据库

指定集合

插入数据

查询

计数

排序

偏移

更新

删除

其他操作

总结

本节讲解了使用 PyMongo 操作 MongoDB 进行数据增删改查的方法,后面我们会在实战案例中应用这些操作完成数据存储。