首頁 > 軟體

利用Python操作MongoDB資料庫的詳細指南

2023-02-08 22:01:20

資料庫的分類

資料庫可以簡單的分為 MySQLNOSQL 兩類。這裡的 NOSQL 不是 NO SQL 的意思,他的意思是 Not Only MySQL

MySQL與NoSQL之間的區別:

1、MySQL是一個基於表格設計的關聯式資料庫,而NoSQL本質上是非關係型的基於檔案的設計。

2、MySQL資料庫,覆蓋了巨大的IT市場;具有固定市場的MySQL資料庫包含一個龐大的社群。而NoSQL資料庫是最新的到來,與MySQL相比,社群正在慢慢發展。

3、MySQL的嚴格模式限制並不容易擴充套件,而NoSQL可以通過動態模式特性輕鬆擴充套件。

4、MySQL中建立資料庫之前需要詳細的資料庫模型,而在NoSQL資料庫型別的情況下不需要詳細的建模。

5、MySQL提供了大量的報告工具,可以幫助應用程式有效,而NoSQL資料庫缺少用於分析和效能測試的報告工具。

6、MySQL是一個關聯式資料庫,其設計約束靈活性較低;而NoSQL本質上是非關係型的,與MySQL相比,它提供了更靈活的設計。

7、MySQL中使用的標準語言是SQL;而NoSQL中缺乏標準的查詢語言。

mongodb是什麼

mongodb是一種資料庫,它可以儲存鍵值對型別的資料(json,字典)。目前流行的資料庫是 MySQL ,但它並不利於初學者入門。我之前發過 Tinydb,Sqlite3 等資料庫的講解,都比較簡單,那我這次來發一下mongodb資料庫。

mongodb 的資料庫、集合

一個資料庫下可以有多個集合,集合裡儲存資料。集合可以理解為 SQL 資料庫中的表。

使用Python操作mongodb

安裝 mongodb

終端執行

pip install pymongo

連線資料庫

client = pymongo.MongoClient(host, port)

host是地址,port 是埠。

切換資料庫 第一種方法

db_name = client['db_name']

其中 db_name 是你的資料庫名。

第二種方法

db_name = client.get_database('db_name')

其中 db_name 是你的資料庫名。

第三種方法

db_name = client.db_name

切換集合

db_name.test

其中 test 是集合名,沒有這個集合會自動建立。

新增資料

def add_data(data):
    result = db_name.test.insert_one(data)
    print(result.inserted_id)

其中 test 是集合名。

新增資料用 insert_one 方法。

其中,data 是要插入的資料,它的型別是鍵值對,即 Python 中的字典。這是一條合法的 data

{"name":"XiaoMing","password":123456}

特殊的,如果要插入在指定 id ,可以這樣寫

result = db_name.test.insert_one({_id:1,"xxx":"xxx",...})

也可以插入多個,只需要把 data 變成

[{"name":"XiaoMing","password":123456},{"name":"XiaoHong","password":123456}]

刪除資料

db.test.remove(查詢表示式, isJustOne)

查詢表示式有這些

語法操作格式
$eq等於{:}
$lt小於{:{$lt:}}
$lte小於或等於{:{$lte:}}
$gt大於{:{$gt:}}
$gte大於或等於{:{$gte:}}
$ne不等於{:{$ne:}}
$or{$or:[{},{}]}
$in在範圍內{age:{$in:[val1,val2]}}
$nin不在範圍內{age:{$nin:[val1,val2]}}

例如,刪除 test 集合中 name 是 XiaoMing 的所有資料

db.test.remove({<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->name:"XiaoMing"})

修改資料

db.collection.update(查詢表示式,新值,選項) 選項: {upsert : true/false, multi : ture/false}

  • upsert:預設為 false , 作用:無相應記錄是否insert,與mysql中的replace同
  • multi:預設為 false , 作用:是否作用於多條
#替換檔案,將name為zhangsan的第一個檔案替換為{"name":"lisi","age":10}
db.stu.update({"name":"zhangsan"},{"name":"lisi","age":10})
$set修改器,指定要更新的key,key不存在則建立,存在則更新。
#將name為zhangsan的所有檔案替換為{"name":"lisi","no":'100'}
db.stu.update({"name":"zhangsan"},{$set:{"name":"lisi","no":'100'}},{multi:true})

查詢資料

#查詢所有資料
db.集合名.find()
# 查詢到所有匹配資料
db.集合名.find({條件檔案})
# 只返回匹配的第一個資料
db.stu.find({age:{$gt:16}}) #查詢年齡大於16的記錄
db.stu.find({$or:[{age:{$gt:18}},{name:"xiaoming"}]) #查詢年齡大於18或者名字是xiaoming的記錄
#使用$where後面寫一個函數,返回滿足條件的資料
db.stu.find({$where:function(){return this.age>20}})
#用於讀取指定數量的檔案
db.集合名稱.find().limit(NUMBER)
#對查詢結果排序(引數1升序,引數-1降序)
db.集合名稱.find().sort({欄位:1,...}) 
#統計結果中的檔案數
db.集合名稱.find({條件}).count()

到此這篇關於利用Python操作MongoDB資料庫的詳細指南的文章就介紹到這了,更多相關Python操作mongodb資料庫內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com