天天看點

【推薦收藏】萬字介紹python MongoDB資料庫

作者:天天不吃飯阿

前言

近期更新了python文法程式設計丶python并發程式設計,前幾天更是更新了python資料庫程式設計的第一子產品MySQL資料庫和Redis資料庫,目前還剩下MongoDB資料庫,今天來更新一下,算是畫上個句号吧,大多數也有視訊,結合效果更佳

【推薦收藏】萬字介紹python MongoDB資料庫

今天的《用python自動識别打怪更新》同理也能用到絕地求生等遊戲上,有興趣的可以回頭翻翻看

關注+評論 或者私信(python)解鎖以下内容

内容囊括:

1.面試專題幾十個大廠面試題

2.入門基礎教程

3.11子產品零基礎到精通筆記

4.百個項目實戰+爬蟲教程+代碼

5.量化交易,機器學習,深度學習

6.Python遊戲源碼

7.DNF自動識别打怪

8.交流學習

一丶MongoDB簡單介紹

Python MongoDB是一種非關系型資料庫,也被稱為NoSQL資料庫。旨在提供高性能、高可用性和可擴充性的資料存儲解決方案。Python MongoDB使用JSON格式存儲資料,這使得它非常适合處理大量非結構化資料。

Python MongoDB的主要特點包括:

  • 高性能:Python MongoDB使用記憶體映射技術,可以快速讀取和寫入資料。
  • 高可用性:Python MongoDB支援主從複制和分片技術,可以保證資料的可靠性和可用性。
  • 可擴充性:Python MongoDB可以輕松地擴充到多個節點,以滿足不斷增長的資料需求。
  • 靈活性:Python MongoDB支援動态模式,可以根據需要随時更改資料結構。
  • 易用性:Python MongoDB提供了簡單易用的API,可以輕松地進行資料操作。

Python MongoDB的安裝非常簡單,隻需要使用pip指令即可安裝。安裝完成後,可以使用pymongo庫來連接配接和操作MongoDB資料庫。

Python MongoDB的應用場景非常廣泛,特别是在大資料處理和實時資料分析方面。它可以用于存儲日志資料、社交媒體資料、物聯網資料等各種類型的非結構化資料。同時,Python MongoDB也可以與其他資料存儲解決方案(如關系型資料庫)進行內建,以滿足不同的資料處理需求。

總之,Python MongoDB是一種高性能、高可用性和可擴充性的資料存儲解決方案,可以幫助開發人員輕松地處理大量非結構化資料。

二丶關于database的基礎指令

MongoDB是一種非關系型資料庫,它使用文檔存儲資料,而不是使用表格。Python是一種流行的程式設計語言,它可以與MongoDB資料庫進行互動。在Python中,我們可以使用PyMongo庫來連接配接和操作MongoDB資料庫。

在MongoDB中,我們可以使用以下基礎指令來管理資料庫:

建立資料庫

在MongoDB中,我們可以使用use指令來建立一個新的資料庫。例如,要建立一個名為mydatabase的資料庫,我們可以使用以下指令:

use mydatabase           

如果資料庫不存在,則MongoDB将建立一個新的資料庫。如果資料庫已經存在,則MongoDB将傳回該資料庫的引用。

顯示資料庫

要顯示MongoDB中所有的資料庫,我們可以使用以下指令:

show dbs           

這将列出MongoDB中所有的資料庫。

删除資料庫

要删除MongoDB中的資料庫,我們可以使用以下指令:

db.dropDatabase()           

這将删除目前標明的資料庫。

切換資料庫

要切換到MongoDB中的另一個資料庫,我們可以使用以下指令:

use anotherdatabase           

這将切換到名為anotherdatabase的資料庫。

顯示目前資料庫

要顯示目前標明的資料庫,我們可以使用以下指令:

db           

這将傳回目前標明的資料庫的引用。

總之,Python與MongoDB資料庫的互動非常友善,可以使用PyMongo庫來連接配接和操作MongoDB資料庫。在Python中,我們可以使用基礎指令來管理資料庫,例如建立、顯示、删除和切換資料庫。

三丶關于集合的基礎指令

Python MongoDB資料庫關于集合的基礎指令

在Python中使用MongoDB資料庫時,集合是MongoDB中的一個重要概念。集合類似于關系型資料庫中的表,但是MongoDB是一個文檔型資料庫,是以集合中存儲的是文檔。

以下是Python MongoDB資料庫關于集合的基礎指令:

建立集合

要建立一個集合,可以使用MongoDB的db.create_collection()方法。在Python中,可以使用pymongo庫中的Collection類的insert_one()方法來建立集合。

import pymongo

# 連接配接MongoDB資料庫
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 建立一個名為mycollection的集合
mydb = client["mydatabase"]
mycol = mydb["mycollection"]           

插入文檔

要向集合中插入文檔,可以使用MongoDB的db.collection.insert()方法。在Python中,可以使用pymongo庫中的Collection類的insert_one()方法來插入文檔。

import pymongo

# 連接配接MongoDB資料庫
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 擷取mycollection集合
mydb = client["mydatabase"]
mycol = mydb["mycollection"]

# 插入一條文檔
mydict = { "name": "John", "address": "Highway 37" }
x = mycol.insert_one(mydict)           

查詢文檔

要查詢集合中的文檔,可以使用MongoDB的db.collection.find()方法。在Python中,可以使用pymongo庫中的Collection類的find()方法來查詢文檔。

import pymongo

# 連接配接MongoDB資料庫
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 擷取mycollection集合
mydb = client["mydatabase"]
mycol = mydb["mycollection"]

# 查詢所有文檔
for x in mycol.find():
  print(x)           

更新文檔

要更新集合中的文檔,可以使用MongoDB的db.collection.update()方法。在Python中,可以使用pymongo庫中的Collection類的update_one()方法來更新文檔。

import pymongo

# 連接配接MongoDB資料庫
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 擷取mycollection集合
mydb = client["mydatabase"]
mycol = mydb["mycollection"]

# 更新一條文檔
myquery = { "address": "Highway 37" }
newvalues = { "$set": { "address": "Park Lane 38" } }
mycol.update_one(myquery, newvalues)           

删除文檔

要删除集合中的文檔,可以使用MongoDB的db.collection.remove()方法。在Python中,可以使用pymongo庫中的Collection類的delete_one()方法來删除文檔。

import pymongo

# 連接配接MongoDB資料庫
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 擷取mycollection集合
mydb = client["mydatabase"]
mycol = mydb["mycollection"]

# 删除一條文檔
myquery = { "address": "Park Lane 38" }
mycol.delete_one(myquery)           

四丶資料類型

MongoDB資料庫支援以下資料類型:

  • String(字元串):存儲文本資料,最常用的資料類型。
  • Integer(整型):存儲整數。
  • Boolean(布爾型):存儲布爾值(true/false)。
  • Double(雙精度浮點型):存儲浮點數。
  • Min/Max keys(最小值/最大值):用于比較值的最小值和最大值。
  • Arrays(數組):用于存儲數組或清單。
  • Timestamp(時間戳):記錄文檔修改或添加的時間。
  • Object(對象):用于嵌入式文檔。
  • Null(空值):用于表示空值或不存在的字段。
  • Symbol(符号):類似于字元串,但是用于特定的上下文環境。
  • Date(日期):用于存儲日期和時間。
  • Object ID(對象ID):用于唯一辨別文檔。
  • Binary data(二進制資料):用于存儲二進制資料,如圖檔、音頻等。
  • Code(代碼):用于存儲JavaScript代碼。
  • Regular expression(正規表達式):用于存儲正規表達式。

五丶資料操作

Python中操作MongoDB資料庫的方式有多種,可以使用官方提供的pymongo庫,也可以使用第三方庫mongoengine等。

以下是pymongo庫的基本資料操作:

連接配接資料庫

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['testdb']           

插入資料

collection = db['testcollection']
data = {'name': 'Tom', 'age': 18}
collection.insert_one(data)           

查詢資料

# 查詢所有資料
result = collection.find()
for item in result:
    print(item)

# 查詢指定條件的資料
result = collection.find({'name': 'Tom'})
for item in result:
    print(item)           

更新資料

# 更新一條資料
collection.update_one({'name': 'Tom'}, {'$set': {'age': 20}})

# 更新多條資料
collection.update_many({'name': 'Tom'}, {'$set': {'age': 20}})           

删除資料

# 删除一條資料
collection.delete_one({'name': 'Tom'})

# 删除多條資料
collection.delete_many({'name': 'Tom'})           

聚合操作

# 統計資料總數
count = collection.count_documents({})

# 按條件分組統計
result = collection.aggregate([
    {'$group': {'_id': '$name', 'count': {'$sum': 1}}}
])
for item in result:
    print(item)           

以上是pymongo庫的基本資料操作,其他庫的操作方式也類似

六丶資料的備份與恢複

Python中備份和恢複MongoDB資料庫可以使用mongodump和mongorestore指令,也可以使用pymongo庫中的函數進行操作。

使用mongodump和mongorestore指令備份和恢複MongoDB資料庫

備份MongoDB資料庫:

mongodump --host <host> --port <port> --db <database> --out <backup_directory>           

其中,是MongoDB伺服器的IP位址或主機名,是MongoDB伺服器的端口号,預設為27017,是要備份的資料庫名稱,<backup_directory>是備份檔案存放的目錄。

恢複MongoDB資料庫:

mongorestore --host <host> --port <port> --db <database> <backup_directory>           

其中,、、和<backup_directory>的含義與備份指令相同。

使用pymongo庫備份和恢複MongoDB資料庫

備份MongoDB資料庫:

import pymongo
import datetime

client = pymongo.MongoClient("<mongodb_uri>")
db = client["<database>"]
collection = db["<collection>"]

backup = collection.find()

with open("<backup_file>", "w") as f:
    for doc in backup:
        f.write(str(doc) + "\n")           

其中,<mongodb_uri>是MongoDB伺服器的URI,和是要備份的資料庫和集合名稱,<backup_file>是備份檔案的路徑。

恢複MongoDB資料庫:

import pymongo

client = pymongo.MongoClient("<mongodb_uri>")
db = client["<database>"]
collection = db["<collection>"]

with open("<backup_file>", "r") as f:
    for line in f:
        doc = eval(line.strip())
        collection.insert_one(doc)           

其中,<mongodb_uri>、、和<backup_file>的含義與備份指令相同。注意,這種方法隻适用于備份和恢複小型資料庫,對于大型資料庫,建議使用mongodump和mongorestore指令進行操作。

七丶聚合操作

MongoDB的聚合操作是指将多個文檔進行分組、篩選、排序、計算等操作,以生成新的文檔集合的過程。Python中可以使用pymongo庫來進行MongoDB的聚合操作。

以下是一個簡單的聚合操作示例,假設我們有一個名為students的集合,其中包含每個學生的姓名、年齡和成績:

from pymongo import MongoClient

client = MongoClient()
db = client['test']
collection = db['students']

pipeline = [
    {"$group": {"_id": "$age", "avg_score": {"$avg": "$score"}}},
    {"$sort": {"_id": 1}}
]

result = collection.aggregate(pipeline)

for doc in result:
    print(doc)           

上述代碼中,我們使用了MongoDB的group和group和avg操作符來計算每個年齡段的平均成績,并使用$sort操作符按年齡升序排序。最終的結果将會是一個包含每個年齡段平均成績的文檔集合。

除了group和group和avg操作符外,MongoDB還提供了許多其他的聚合操作符,如match、match、project、sort、sort、limit等,可以根據具體需求進行組合使用。

八丶索引

MongoDB中的索引是用于提高查詢性能的一種資料結構。在MongoDB中,可以使用多種類型的索引,包括單字段索引、複合索引、全文索引等。

以下是使用Python操作MongoDB索引的示例:

建立單字段索引

from pymongo import MongoClient

client = MongoClient()
db = client.test_database
collection = db.test_collection

# 建立單字段索引
collection.create_index("name")

# 查詢是否建立成功
print(collection.index_information())           

建立複合索引

from pymongo import MongoClient

client = MongoClient()
db = client.test_database
collection = db.test_collection

# 建立複合索引
collection.create_index([("name", 1), ("age", -1)])

# 查詢是否建立成功
print(collection.index_information())           

建立全文索引

from pymongo import MongoClient

client = MongoClient()
db = client.test_database
collection = db.test_collection

# 建立全文索引
collection.create_index([("content", "text")])

# 查詢是否建立成功
print(collection.index_information())           

查詢使用索引

from pymongo import MongoClient

client = MongoClient()
db = client.test_database
collection = db.test_collection

# 查詢使用索引
result = collection.find({"name": "Tom"}).explain()["executionStats"]
print(result)           

以上是Python操作MongoDB索引的示例,可以根據實際需求選擇不同類型的索引來提高查詢性能。

九丶pymongo的操作

Python中操作MongoDB資料庫需要使用pymongo庫,以下是pymongo庫的常用操作:

連接配接MongoDB資料庫

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017/')           

選擇資料庫

db = client['database_name']           

選擇集合

collection = db['collection_name']           

插入文檔

data = {'name': 'John', 'age': 25}
collection.insert_one(data)           

查詢文檔

result = collection.find_one({'name': 'John'})           

更新文檔

collection.update_one({'name': 'John'}, {'$set': {'age': 30}})           

删除文檔

collection.delete_one({'name': 'John'})           

查詢多個文檔

results = collection.find({'age': {'$gt': 20}})
for result in results:
    print(result)           

以上是pymongo庫的常用操作,可以根據實際需求進行調用。

關注+評論 或者私信(python)解鎖以下内容

内容囊括:

1.面試專題幾十個大廠面試題

2.入門基礎教程

3.11子產品零基礎到精通筆記

4.百個項目實戰+爬蟲教程+代碼

5.量化交易,機器學習,深度學習

6.Python遊戲源碼

7.DNF自動識别打怪

8.交流學習

整理不易,點贊+關注一下吧

#python打卡##每天學python##python##python程式設計小知識##python自學#