第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 Python 原生爬蟲教程 Python 原生爬蟲教程 12 MongoDB 數(shù)據(jù)庫的簡單使用和配置

MongoDB 數(shù)據(jù)庫的簡單使用和配置

這節(jié)課我們主要是學習 MongoDB 數(shù)據(jù)庫的基本操作和使用,爬蟲在爬取到數(shù)據(jù)之后可以把數(shù)據(jù)需要把數(shù)據(jù)保留下來供其他工作人員去使用。如果數(shù)據(jù)量不是很大的話可以保存在文件中,但是如果數(shù)據(jù)量很大那么保存在文件中就非常困難,先不說存儲完數(shù)據(jù)之后的文件大小非常大,很占空間,單就是往文件中寫入數(shù)據(jù)的速度就很慢。

但是幸好我們還有另外一個選擇,那就是將爬取到的數(shù)據(jù)存入數(shù)據(jù)庫中。因為現(xiàn)在 JSON 數(shù)據(jù)格式的流行,我們一般都會選擇 JSON 來作為數(shù)據(jù)的傳輸格式,所以非常適合 JSON 數(shù)據(jù)存儲的 MongoDB 數(shù)據(jù)庫就獲得了我們爬蟲程序員的青睞,所以這節(jié)課我們就來學習下 MongoDB 的:

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

通過本節(jié)課的學習你會掌握

  • MongoDB 基本操作,能夠操作創(chuàng)建數(shù)據(jù)庫,并且進行簡單的 CURD 功能。

  • 使用 Python 進行數(shù)據(jù)庫的 CURD.

1. MongoDB 簡介

MongoDB 是一個文檔型數(shù)據(jù)庫,由 C++ 編寫,功能豐富,支持復(fù)雜的數(shù)據(jù)類型,支持數(shù)據(jù)建立索引,性能高,容易使用,方便部署。

主要特點如下:

  1. 面向集合存儲,方便存儲對象類型的數(shù)據(jù);
  2. 支持語言豐富,Python,Java,C++ 等語言;
  3. 支持完全索引;
  4. 文件存儲等格式為 JSON。

傳統(tǒng)的關(guān)系型數(shù)據(jù)庫以 MySQL 為例,一般是由數(shù)據(jù)庫,表,記錄三個層次組成,MongoDB 是由數(shù)據(jù)庫,集合,文檔對象組成。下表列出了 MongoDB 與 MySQL 的對比:

MySQL MongoDB 描述
database database 數(shù)據(jù)庫
table collection 數(shù)據(jù)庫表 / 集合
row document 數(shù)據(jù)庫行 / 文檔
column field 數(shù)據(jù)字段列 / 域
index index 索引
index index 索引

2. MongoDB 數(shù)據(jù)庫的安裝

MongoDB 的安裝方式讀者可以自行去查找,這里就不再贅述了。通過以下方式測試數(shù)據(jù)庫是否安裝運行成功:打開瀏覽器,輸入如下網(wǎng)址,成功后,會返回如下結(jié)果

圖片描述

下面我們來看下 MongoDB 的基本操作。

2.1 顯示所有數(shù)據(jù)庫

要查看本地所有的數(shù)據(jù)庫需要運行下面的命令:

show dbs

效果展示:

2.3 創(chuàng)建一個集合

要查看本地所有的數(shù)據(jù)庫需要運行下面的命令:

db.createCollection("test")

效果展示:

圖片描述

2.4 往集合添加一條數(shù)據(jù)

要查看本地所有的數(shù)據(jù)庫需要運行下面的命令:

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

效果展示:

圖片描述
圖片描述

2.5 查詢集合添加的數(shù)據(jù)

要查看本地所有的數(shù)據(jù)庫需要運行下面的命令:

db.test.find()

效果展示:

圖片描述

2.6 更改集合里的數(shù)據(jù)

要查看本地所有的數(shù)據(jù)庫需要運行下面的命令:

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

效果展示:

圖片描述

2.7 刪除集合里的數(shù)據(jù)

要查看本地所有的數(shù)據(jù)庫需要運行下面的命令:

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

效果展示:

圖片描述

3. 使用 pymongo 操作 MongoDB 數(shù)據(jù)庫

第二部分中我們講述了如何操作 MongoDB 數(shù)據(jù)庫,但是在爬蟲開發(fā)中我們沒辦法使用命令來操作 MongoDB 數(shù)據(jù)庫。我們就要使用 Python 語言來操作 MongoDB 數(shù)據(jù)庫,那么如何使用 Python 來操作數(shù)據(jù)庫呢?
這個時候我們就需要使用 pymongo 包了。通過這個第三方的包,我們才可以通過 Python 語言來控制 MongoDB 的操作。

首先安裝 pymongo 包:

pip install pymongo

效果展示:

圖片描述

3.1 連接數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫和集合

在 pymongo 安裝完成之后,我們接下來通過 Python 來連接本地和遠程的 MongoDB 數(shù)據(jù)庫。

from pymongo import MongoClient
#建立連接
client = MongoClient('mongodb://localhost:27017/')
#創(chuàng)建數(shù)據(jù)庫new_db_for_py
db = client['new_db_for_py']
#創(chuàng)建集合new_data_set
collection = db.new_data_set

效果如下:
圖片描述

3.2 插入數(shù)據(jù)

插入兩組數(shù)據(jù),分別為 Tony 和 Jack:

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

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

效果如下:
圖片描述

3.3 查詢數(shù)據(jù)

尋找名字為 Tony 的數(shù)據(jù):

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

效果如下:

圖片描述

3.4 更改數(shù)據(jù)

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

效果如下:

圖片描述

3.5 刪除數(shù)據(jù)

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

效果如下:

圖片描述

再次查詢 Tony,效果如下:

圖片描述

查詢?yōu)榭?,說明 Tony 的數(shù)據(jù)刪除成功!

4. 小結(jié)

這一小節(jié),我們學會了 MongoDB 的基本操作,以及在 Python 中的使用。

如果文件不是很大,持久化存儲可以使用 TXT 或者 CSV 格式,寫入和讀取都比較方便。但是,當數(shù)據(jù)量很大的時候,而且需要存儲 JSON 等格式的時候,推薦使用 MongoDB 進行持久化的存儲。