天天看點

【Python】操作資料庫MongoDB

【Python】操作資料庫MongoDB

上一篇,我學習了​

​Python​

​使用​

​PyMySQL​

​來連接配接​

​MySQL資料庫​

​,學了如何下載下傳、安裝、使用依賴庫,上一篇的🔗Python操作MySQL主要是連接配接關系型資料庫,而在實際使用過程中,使用mondoDB的頻率也比較高。應運而生,學習這一篇主要也是相當重要,因為使用這些資料庫的頻率比較高、适用場景比較廣泛。

MongoDB是為快速開發網際網路Web應用而設計的資料庫系統。MongoDB的設許目标是極簡、靈活、作為Web應用棧的一部分。MongoDB的資料模型是面向文檔的,所謂文檔是一種類似于JSON的結構,簡單了解MongoDB這個資料庫中存的是各種各樣的JSON。

🏮1 安裝依賴庫

Python下的使用pip安裝PyMongo

上一篇介紹了如何在Mac環境下安裝PyMySQL,這一次同樣可以使用​

​pip​

​這個工具安裝mongoDB。

如何安裝開發庫驅動,可以參考官方提供的方式:​​開始使用MongoDB開始​​

具體的可以參考官方提供的文檔:​​Python連接配接MongoDB的驅動PyMongo​​ 3

【Python】操作資料庫MongoDB
# 安裝驅動器
Aion.Liu $ pip install pymongo
Collecting pymongo
  Downloading pymongo-4.2.0-cp310-cp310-macosx_10_9_universal2.whl (373 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 373.4/373.4 kB 20.1 kB/s eta 0:00:00
Installing collected packages: pymongo
Successfully installed pymongo-4.2.0

# 檢視已經安裝的依賴庫以及版本
Aion.Liu $ pip list
Package    Version
---------- -------
meson      0.63.0
pip        22.2.2
protobuf   4.21.4
# 可以看到我們已經成功安裝了4.2.0版本的PyMongo驅動器
pymongo    4.2.0
PyMySQL    1.0.2
setuptools 63.2.0
xmltodict  0.13.0      

當然,如果伺服器或者本地實驗環境的版本同安裝的驅動器不在同一個相容版本區間内,那麼我們可以參考是否一緻。官方提供的相容版本:​​https://www.mongodb.com/docs/drivers/pymongo/#compatibility​​

🏮 2 如何操作MongoDB

python使用PyMongo操作MongoDB

🎈 2.1 連接配接資料庫

首先我們将連接配接資料庫的代碼寫入到一個​

​c09.py​

​的檔案,然後執行這個檔案:

from pymongo import MongoClient

def mongodb_init01():
    # m1
    client = MongoClient(host='127.0.0.1', port=27017)
    print(client)

def mongodb_init02():
    # m2
    uri = "mongodb://{}:{}".format('127.0.0.1', 27017)
    client = MongoClient(uri)
    print(client)

if __name__ == '__main__':
    mongodb_init01()
    mongodb_init02()      

連接配接後,輸出連接配接資訊内容:

# 執行指令
Aion.Liu $ python c09.py
MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True)
MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True)      

🎈 2.2 操作資料|INSERT_ONE

我們在2.1的基礎上,建立一個​

​python_study​

​資料庫

>>> python_study = client.python_study      

在資料庫中,建立一個集合​

​users​

​,并插入一條資料。

# 建立集合并插入一條資料
>>> user = python_study.users.insert_one({"name" : "Aion.Liu", "age" : 18, "sex" : '1'})
>>> print(user)
<pymongo.results.InsertOneResult object at 0x10d7379a0>
>>>      

下面我們在可視化工具種檢視資料:

【Python】操作資料庫MongoDB

🎈 2.3 操作資料|INSERT_MANY

如果我們想一次性插入一個集合,要如何操作呢,也很簡單:

>>> user_list = [
...     {"name": "XiaoMing",  "age": 15, "sex": "0"},
...     {"name": "Lucy",  "age": 18, "sex": "1"},
...     {"name": "HanMeimei", "age": 16, "sex": "1"},
...     {"name": "Lily", "age": 19, "sex": "1"},
...     {"name": "Jim", "age": 15, "sex": "0"},
...     {"name": "Kate","age": 14, "sex": "9"},
...     {"name": "Tom", "age": 13, "sex": "1"},
...     {"name": "Ann","age": 12, "sex": "2"},
...     {"name": "LiLei", "age": 17, "sex": "0"},
...     {"name": "LinTao", "age": 18, "sex": "1"}
... ]
>>>
>>> insert_users = python_study.insert_many(user_list)      

然後我們再回去可視化工具中,檢視已經插入的資料:

【Python】操作資料庫MongoDB

🎈 2.4 操作資料|FIND_ONE/FIND

這些方法同我們在操作MongoDB使用的函數都差不多,有興趣的可以自己手工執行下,這裡我放我所操作實驗的圖檔。

  • 擷取一條資料
  • 【Python】操作資料庫MongoDB
  • 周遊擷取多條資料
  • 【Python】操作資料庫MongoDB
  • 查詢年齡等于13的學生使用者
  • 【Python】操作資料庫MongoDB

其他我就不在贅述,主要是同MongoDB的操作相差不是很大。官方提供的CRUD的操作:​​https://www.mongodb.com/docs/manual/crud/​​

🎈 2.5 參考

[1] MongoDB官方提供的CURD操作:​​https://www.mongodb.com/docs/manual/crud/​​

[2] MongoDB相容性:​​https://www.mongodb.com/docs/drivers/pymongo/#compatibility​​

[3] MongoDB官方文檔說明:​​https://www.mongodb.com/docs/drivers/pymongo/​​

[4] MongoDB 使用語言操作說明頁:​​https://www.mongodb.com/docs/drivers/?_ga=2.156034302.470735255.1660048923-277170845.1660048923​​

🎈 3 推薦一些可視化工具

MongoDB的可視化工具可謂是很多,大家根據各自的需要斟酌使用

關于可視化工具的選擇,大家可以搜尋下,任意選擇就好,這裡推薦下老師部落格使用的可視化工具​​NoSQL Manager for MongoDB​​ 由于我需要連接配接其他的資料庫,是以這裡選擇了​​DBeaver​​。其他的一些可視化工具就有很多了,如下所示:

  • MongoDB Compass Community(社群版)
  • NoSQLBooster
  • Cluster Control
  • Mongo Management Studio
  • Nosqlclient
  • Robo 3T(Robomongo、Studio 3T)
  • Navicat for MongoDB
  • Aqua Data Studio Mongo
  • phpMoAdmin
  • Mongotron
  • Mongolime
  • Mongo-express

🎈 4 學習總結