top
Loading...
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 地址和要創建的數據庫名。

如下實例中,我們創建的數據庫 runoobdb :

實例

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

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

判斷數據庫是否已存在

我們可以讀取 MongoDB 中的所有數據庫,併判斷指定的數據庫是否存在:

實例

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

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

判斷集合是否已存在

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

實例

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