Python3 MongoDB

2023-03-15 14:39 更新

MongoDB 是目前最流行的 NoSQL 數(shù)據(jù)庫之一,使用的數(shù)據(jù)類型 BSON(類似 JSON)。

MongoDB 數(shù)據(jù)庫安裝與介紹可以查看我們的 MongoDB 教程。

PyMongo

Python 要連接 MongoDB 需要 MongoDB 驅(qū)動,這里我們使用 PyMongo 驅(qū)動來連接。

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

接下來我們可以創(chuàng)建一個測試文件 demo_test_mongodb.py,代碼如下:

demo_test_mongodb.py 文件代碼:

#!/usr/bin/python3
 
import pymongo

執(zhí)行以上代碼文件,如果沒有出現(xiàn)錯誤,表示安裝成功。

創(chuàng)建數(shù)據(jù)庫

創(chuàng)建一個數(shù)據(jù)庫

創(chuàng)建數(shù)據(jù)庫需要使用 MongoClient 對象,并且指定連接的 URL 地址和要創(chuàng)建的數(shù)據(jù)庫名。

如下實例中,我們創(chuàng)建的數(shù)據(jù)庫 w3cschool :

實例

#!/usr/bin/python3
 
import pymongo
 
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["w3cschool"]
注意: 在 MongoDB 中,數(shù)據(jù)庫只有在內(nèi)容插入后才會創(chuàng)建! 就是說,數(shù)據(jù)庫創(chuàng)建后要創(chuàng)建集合(數(shù)據(jù)表)并插入一個文檔(記錄),數(shù)據(jù)庫才會真正創(chuàng)建。

判斷數(shù)據(jù)庫是否已存在

我們可以讀取 MongoDB 中的所有數(shù)據(jù)庫,并判斷指定的數(shù)據(jù)庫是否存在:

實例

#!/usr/bin/python3
 
import pymongo
 
myclient = pymongo.MongoClient('mongodb://localhost:27017/')
 
dblist = myclient.list_database_names()
# dblist = myclient.database_names() 
if "w3cschool" in dblist:
  print("數(shù)據(jù)庫已存在!")
注意:database_names 在最新版本的 Python 中已廢棄,Python3.7+ 之后的版本改為了 list_database_names()。

創(chuàng)建集合

MongoDB 中的集合類似 SQL 的表。

創(chuàng)建一個集合

MongoDB 使用數(shù)據(jù)庫對象來創(chuàng)建集合,實例如下:

實例

#!/usr/bin/python3
 
import pymongo
 
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["w3cschool"]
 
mycol = mydb["sites"]
注意: 在 MongoDB 中,集合只有在內(nèi)容插入后才會創(chuàng)建! 就是說,創(chuàng)建集合(數(shù)據(jù)表)后要再插入一個文檔(記錄),集合才會真正創(chuàng)建。

判斷集合是否已存在

我們可以讀取 MongoDB 數(shù)據(jù)庫中的所有集合,并判斷指定的集合是否存在:

實例

#!/usr/bin/python3
 
import pymongo
 
myclient = pymongo.MongoClient('mongodb://localhost:27017/')
 
mydb = myclient['w3cschool']
 
collist = mydb. list_collection_names()
# collist = mydb.collection_names()
if "sites" in collist:   # 判斷 sites 集合是否存在
  print("集合已存在!")
注意:collection_names 在最新版本的 Python 中已廢棄,Python3.7+ 之后的版本改為了 list_collection_names()。

增、刪、改、查等操作

下表列出了 MongoDB 的更多操作,詳情可點(diǎn)擊具體鏈接:

序號 功能
1 添加數(shù)據(jù)
2 查詢數(shù)據(jù)
3 修改數(shù)據(jù)
4 數(shù)據(jù)排序
5 刪除數(shù)據(jù)


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號