MongoDB 的介紹 MongoDB 是一個開源的非關係型資料庫系統,採用 C++ 編寫,旨在處理大量數據存儲和高吞吐量的應用程式。MongoDB 使用 JSON 風格的文檔存儲數據,具有高度的靈活性和性能。 主要特點: 非關係型資料庫:不採用傳統的關係型資料庫表格模型,而是使用文檔存儲模型。 高 ...
MongoDB 的介紹
MongoDB 是一個開源的非關係型資料庫系統,採用 C++ 編寫,旨在處理大量數據存儲和高吞吐量的應用程式。MongoDB 使用 JSON 風格的文檔存儲數據,具有高度的靈活性和性能。
主要特點:
- 非關係型資料庫:不採用傳統的關係型資料庫表格模型,而是使用文檔存儲模型。
- 高性能:支持在集群中水平擴展,能夠處理大規模的數據存儲和高併發訪問。
- 靈活的數據模型:文檔存儲模型支持嵌套文檔和數組,適合存儲複雜的數據結構。
- 豐富的功能:提供豐富的查詢語言、支持多種索引、數據複製和故障恢復機制。
SQL 和 NoSQL 的區別
在關係型資料庫(SQL)和非關係型資料庫(NoSQL)之間,主要區別在於數據的組織方式和數據模型:
-
SQL 資料庫:採用表格模型,數據按照預定義的結構存儲,具有嚴格的一致性和事務支持。
- 數據結構:資料庫 > 表 > 行 > 列
- 例子:MySQL、PostgreSQL、Oracle
-
NoSQL 資料庫:採用多種數據模型,如文檔存儲、鍵值對、列存儲和圖形資料庫,適用於數據結構較為靈活的場景。
- 數據結構:資料庫 > 集合(Collection) > 文檔(Document) > 欄位(Field)
- 例子:MongoDB、Redis、Cassandra
MongoDB 的安裝
MongoDB 的安裝步驟:
- 下載 MongoDB 安裝包:從 MongoDB 官網下載對應版本的安裝包。
- 安裝 MongoDB:按照官方文檔指引安裝 MongoDB。
- 配置 MongoDB:根據需要配置 MongoDB 的數據目錄、日誌文件路徑等。
- 啟動 MongoDB 服務:啟動 mongod 進程以及可選的配置選項。
MongoDB 的簡單使用
本地測試啟動(功能受限)
在本地測試中,可以使用預設配置啟動 MongoDB:
# 啟動 MongoDB mongod # 連接 MongoDB Shell mongo
生產方式啟動(完整內容)
在生產環境中,需要配置更多的參數,例如數據目錄、日誌輸出、認證等:
# 啟動 MongoDB(示例) mongod --dbpath /path/to/data --logpath /path/to/log/mongod.log --fork
MongoDB 的資料庫操作和集合操作
MongoDB 中的操作以資料庫和集合為單位:
-
資料庫操作:
# 切換資料庫 use your_database_name # 顯示當前資料庫 db
-
集合操作:
# 創建集合 db.createCollection("your_collection") # 查看集合列表 show collections
MongoDB 的數據類型
MongoDB 支持多種數據類型,包括字元串、整數、浮點數、日期、數組、嵌套文檔等。
MongoDB 插入、查詢、修改和刪除數據
MongoDB 支持豐富的數據操作:
-
插入數據:
db.collection_name.insertOne({ key: value });
-
查詢數據:
db.collection_name.find({ key: value });
-
修改數據:
db.collection_name.updateOne({ filter }, { $set: { key: new_value } });
-
刪除數據:
db.collection_name.deleteOne({ filter });
MongoDB 的聚合管道
MongoDB 的聚合管道允許對數據進行多個階段的處理和轉換,如分組、排序、篩選等:
-
分組管道:
db.collection_name.aggregate([ { $group: { _id: "$key", total: { $sum: "$value" } } } ]);
-
其他管道:
db.collection_name.aggregate([ { $match: { key: value } }, { $sort: { key: 1 } }, { $skip: 10 }, { $limit: 5 } ]);
MongoDB 索引和許可權管理
-
索引:MongoDB 支持多種索引類型,如單欄位索引、複合索引、文本索引等。
db.collection_name.createIndex({ key: 1 });
-
許可權管理:MongoDB 支持創建和管理用戶及其許可權,保障數據安全性。
pymongo 使用
pymongo
是 Python 中操作 MongoDB 的官方驅動程式:
pip install pymongo
使用示例:
from pymongo import MongoClient # 連接 MongoDB client = MongoClient('mongodb://localhost:27017/') # 獲取資料庫和集合 db = client.your_database_name collection = db.your_collection_name # 插入數據 data = {"key": "value"} result = collection.insert_one(data) # 查詢數據 query = {"key": "value"} result = collection.find(query) # 修改數據 update_query = {"key": "value"} new_value = {"$set": {"key": "new_value"}} result = collection.update_one(update_query, new_value) # 刪除數據 delete_query = {"key": "value"} result = collection.delete_one(delete_query)