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 地址和要創建的資料庫名。

如下實例中,我們創建的資料庫 zaixiandb :

實例

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

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

判斷資料庫是否已存在

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

實例

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient('mongodb://localhost:27017/') dblist = myclient.list_database_names() # dblist = myclient.database_names() if "zaixiandb" 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["zaixiandb"] mycol = mydb["sites"]

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

判斷集合是否已存在

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

實例

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient('mongodb://localhost:27017/') mydb = myclient['zaixiandb'] 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 刪除數據