python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

上次

我们知道了怎么操作 MySQL 数据库

python爬虫26 | 把数据爬取下来之后就存储到你的MySQL数据库。

MySQL 有些年头了

开源又成熟又牛逼

所以现在很多企业都在使用 MySQL

MySQL 是关系型数据库

其实当前主流的数据库

例如

Oracle、DB2、PostgreSQL、Microsoft SQL Server 等等

都是关系型数据库

这样的话

它们可以在数据表之间建立索引、约束

进行关联

让表与表之间产生联系

可以让数据重复利用,不会浪费

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

 相对应的就是

非关系型数据库

 

NoSQL

 

它不用传统的 SQL 语句进行操作

而是有自己的独特的数据存储方式

可以说相当方便

NOSQL 的经典代表数据库就是我们今天要说的

MongoDB

 

由 C++ 写的 文档存储 形式的非关系数据库

如果你对 JSON 有所了解

那么 MongoDB 对你来说so easy

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

由于它是基于内存对数据进行处理的

所以读写速度相对更高一些

好了

吹了一波 MongoDB 的牛逼之后

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

接下来小帅b就来跟你说说

怎么玩 MongoDB

 

接下来就是

 

学习 python 的正确姿势

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

我们先来看看这样的数据

name quantity size status tags rating
journal 25 14×21,cm A brown, lined 9
notebook 50 8.5×11,in A college-ruled,perforated 8
paper 100 8.5×11,in D watercolor 10
planner 75 22.85×30,cm D 2019 10
postcard 45 10x,cm D double-sided,white 2

(来自 mongodb 官方例子)

有些字段里面包含多个信息

如果按传统的 SQL 的话

查询起来比较麻烦

而且需要创建多张表进行关联

而用文档格式存储的话就可以使用这样的格式表示

{
 "name": "notebook",
 "qty": 50,
 "rating": [ { "score": 8 }, { "score": 9 } ],
 "size": { "height": 11, "width": 8.5, "unit": "in" },
 "status": "A",
 "tags": [ "college-ruled", "perforated"]
}

是不是很简单咧

那么接下来小帅b就带你使用 python 来操作 MangoDB 吧

真香假设

本文假设你的操作系统已经安装好 MangoDB 了

如果你还没安装的话

可以到以下链接进行下载安装

https://docs.mongodb.com/manual/installation/?jmp=footer&_ga=2.246611149.899311115.1556631996-38380112.1556631995

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

当你安装完之后

启动 mongodb

然后输入 mongo 就可以操作 MongoDB 了

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

好了好了

我们使用 python 代码来操作一下吧

这次我们需要一个库

Pymongo

from pymongo import MongoClient

连接到你的 MongoDB

conn = MongoClient('mongodb://localhost:27017/')

27017 是你的 MongoDB 的默认端口

 

创建一个 avIdol 数据库,如果 mongodb 没有会自行创建

db = conn.avIdol

往数据库插入一条数据

db.col.insert({"name": '波多野結衣', 'bwh': '{ "b": 90, "w": 59, "h": 85}' , 'age': 30})

运行一下

没报什么错

接着我们使用

print(db.col.find_one())

来查询一下是否插入数据了

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

可以看到

数据插入成功

来个批量插入吧

db.col.insert([
    {"name": '波多野結衣', 'bwh': '{ "b": 90, "w": 59, "h": 85}' , 'age': 30},
    {"name": '吉泽明步', 'bwh': '{ "b": 86, "w": 58, "h": 86}' , 'age': 35},
    {"name": '桃乃木香奈', 'bwh': '{ "b": 80, "w": 54, "h": 80}' , 'age': 22},
    {"name": '西宫梦', 'bwh': '{ "b": 85, "w": 56, "h": 86}' , 'age': 22},
    {"name": '松下纱荣子', 'bwh': '{ "b": 88, "w": 57, "h": 86}' , 'age': 28}
])

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

这次我们使用 for 循环查询一下数据库

for item in db.col.find():
    print(item)

可以看到

数据被我们存储下来了

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

当然

你也可以通过条件查询

例如根据 id 查询

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

删除 波多野结衣

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

db.col.remove({"name": "波多野結衣"})

删除全部

db.col.remove()

把 吉泽明步 换成 苍井空

db.col.update({'name': '吉泽明步'}, {'$set': {'name': '苍井空'}})

ok

以上就是 python 对 MongoDB 的操作

更多关于 MongoDB 的介绍可以到官方看看

https://docs.mongodb.com/

以后

小帅b带你玩爬虫项目实战的时候

还会提及 MongoDB 的

期待就好

那么

我们下回见了

peace

python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

记得素质三连!!!!!!!!!!!!!!!!

原文始发于微信公众号(学习python的正确姿势):python爬虫27 | 当Python遇到MongoDB的时候,存储av女优的数据变得如此顺滑爽~

发表回复