Python MongoDB

Python MongoDB

MongoDB 是目前最流行的 NoSQL 資料庫之一,使用的資料型別 BSON(類似 JSON)。

MongoDB 資料庫安裝與介紹可以檢視我們的 MongoDB 教程。


PyMongo

Python 要連線 MongoDB 需要 MongoDB 驅動,這裡我們使用 PyMongo 驅動來連線。

pip 安裝

pip 是一個通用的 Python 包管理工具,提供了對 Python 包的查詢、下載、安裝、解除安裝的功能。

安裝 pymongo:

$ python3 -m pip3 install pymongo

也可以指定安裝的版本:

$ python3 -m pip3 install pymongo==3.5.1

更新 pymongo 命令:

$ python3 -m pip3 install --upgrade pymongo

easy_install 安裝

舊版的 Python 可以使用 easy_install 來安裝,easy_install 也是 Python 包管理工具。

$ python -m easy_install pymongo

更新 pymongo 命令:

$ python -m easy_install -U pymongo

測試 PyMongo

接下來我們可以建立一個測試檔案 demo_test_mongodb.py,程式碼如下:

demo_test_mongodb.py 檔案程式碼:

#!/usr/bin/python3 import pymongo

執行以上程式碼檔案,如果沒有出現錯誤,表示安裝成功。


建立資料庫

建立一個數據庫

建立資料庫需要使用 MongoClient 物件,並且指定連線的 URL 地址和要建立的資料庫名。

如下例項中,我們建立的資料庫 itread01db :

例項

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["itread01db"]

注意: 在 MongoDB 中,資料庫只有在內容插入後才會建立! 就是說,資料庫建立後要建立集合(資料表)並插入一個文件(記錄),資料庫才會真正建立。

判斷資料庫是否已存在

我們可以讀取 MongoDB 中的所有資料庫,並判斷指定的資料庫是否存在:

例項

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient('mongodb://localhost:27017/') dblist = myclient.list_database_names() # dblist = myclient.database_names() if "itread01db" in dblist: print("資料庫已存在!")

注意:database_names 在最新版本的 Python 中已廢棄,Python3.7+ 之後的版本改為了 list_database_names()。


建立集合

MongoDB 中的集合類似 SQL 的表。

建立一個集合

MongoDB 使用資料庫物件來建立集合,例項如下:

例項

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["itread01db"] mycol = mydb["sites"]

注意: 在 MongoDB 中,集合只有在內容插入後才會建立! 就是說,建立集合(資料表)後要再插入一個文件(記錄),集合才會真正建立。

判斷集合是否已存在

我們可以讀取 MongoDB 資料庫中的所有集合,並判斷指定的集合是否存在:

例項

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient('mongodb://localhost:27017/') mydb = myclient['itread01db'] collist = mydb. list_collection_names() # collist = mydb.collection_names() if "sites" in collist: # 判斷 sites 集合是否存在 print("集合已存在!")

注意:collection_names 在最新版本的 Python 中已廢棄,Python3.7+ 之後的版本改為了 list_collection_names()。


增、刪、改、查等操作

下表列出了 MongoDB 的更多操作,詳情可點選具體連結:

序號 功能
1 新增資料
2 查詢資料
3 修改資料
4 資料排序
5 刪除資料