您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數據庫系統。
在高負載的情況下,添加更多的節點,可以保證服務器性能。
MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔,數組及文檔數組。
大而復雜的數據
移動和社會基礎設施數據
內容管理和交付
用戶數據
管理數據中心
MongoDB 的架構較少。它是一個文檔數據庫,它的一個集合持有不同的文檔。
從一個到另一個的文檔的數量,內容和大小可能有差異。
MongoDB 中單個對象的結構很清淅。
MongoDB 中沒有復雜的連接。
MongoDB 提供深度查詢的功能,因為它支持對文檔的強大的動態查詢。
MongoDB 很容易擴展。
它使用內部存儲器來存儲工作集,這是其快速訪問的原因。
不支持事務操作
占用空間過大
MongoDB沒有如MySQL那樣成熟的維護工具
無法進行關聯表查詢,不適用于關系多的數據
復雜聚合操作通過mapreduce創建,速度慢
模式自由, 自由靈活的文件存儲格式帶來的數據錯誤
下載 3.0.6 版本
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
安裝
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz
移動文件夾
mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb
增加環境變量
export PATH=/usr/local/mongodb/bin:$PATH
nohup /usr/local/mongodb/bin/mongod --dbpath=/data/db --rest > /usr/local/mongodb/mongo.log 2>&1 &
netstat -tnlp|grep mongo
27017是默認開的mongodb端口,28017是默認的web訪問端口
效果
如果開了外網端口,用瀏覽器查看是否外網訪問
/usr/local/mongodb/bin/mongo
效果
show dbs
效果
# 切換分支 use mongodb_test # 顯示列表 show tables # 顯示列表 show collections
show tables 和 show collections 效果相同
效果
db.col_test.find()
效果
pip install pymongo
注意,如果創建的數據庫、表單中沒有數據,是顯示不出來數據庫的。
from pymongo import MongoClient client_ip = "193.112.61.11" client_port = 27017 my_client = MongoClient(client_ip, client_port) db_list = my_client.list_database_names() print("數據庫列表:",db_list)
db = my_client.test print("db:", db) testDB(my_client)
db_name = 'mongodb_test' my_db = my_client[db_name]
表單(集合)列表
col_list = my_db.list_collection_names()
沒有此表單就創建這個表單,有此表單就連接這個表單
sheet_tab_one = my_db[name]
# 刪除一條數據 def delData_one(my_col, myquery): result = my_col.delete_one(myquery) print(result.deleted_count,"數據已刪除")
# 刪除多條數據 def delData_many(my_col, myquery): result = my_col.delete_many(myquery) print(result.deleted_count,"數據已刪除")
刪除數據
# 刪除一條數據 def delData_one(my_col, myquery): result = my_col.delete_one(myquery) print(result.deleted_count,"數據已刪除")
刪除多條數據
# 刪除多條數據 def delData_many(my_col, myquery): result = my_col.delete_many(myquery) print(result.deleted_count,"數據已刪除")
刪除一個表單
# 刪除一個表單 def delCol(my_col): my_col.drop() print("刪除表單成功")
# 修改匹配到的第一條數據 def updateData_one(my_col, myquery, new_val): result = my_col.update_one(myquery, new_val) print(result.modified_count, "文檔已修改")
# 修改匹配到的多條數據 def updateData_many(my_col, myquery, new_val): result = my_col.update_many(myquery, new_val) print(result.modified_count, "文檔已修改")
# 查詢一條數據 def searchData_one(my_col): result = my_col.find_one() print(result)
# 查詢集合中所有數據 def searchData_many(my_col, limit = 0): for item in my_col.find().limit(limit): print(item)
根據指定條件查詢 或者 正則表達式查詢
# my_query = {"name": "ShaShiDi"} # 根據指定條件查詢 # my_query = {"name": {"$regex": "^S"}} # 以下實例用于讀取 name 字段中第一個字母為 "S" 的數據 # 根據指定條件查詢 或者正則表達式查詢(比如 my_query = { "name": { "$regex": "^S" } }) def searchData_miss(my_col, my_query): print("根據指定條件查詢: ", my_query) my_doc = my_col.find(my_query) for item in my_doc: print(item)
# 按照某字段排序 默認True是正序,False是倒序 def sortData(my_col, my_key, sortB = True): if sortB: my_doc = my_col.find().sort(my_key) else: my_doc = my_col.find().sort(my_key, -1) for item in my_doc: print(item)
from pymongo import MongoClient # 數據庫列表 def ifnotDB(my_client, db_name): db_list = my_client.list_database_names() print("數據庫列表:",db_list) if db_name in db_list: print("%s 數據庫已存在!"%db_name) else: print("%s 數據庫不存在!"%db_name) # 測試數據庫是否連接成功 返回測試結果 def testDB(my_client): db = my_client.test print("db:", db) return db # 創建一個數據庫 返回數據庫對象 def creatDB(my_client, name): my_db = my_client[name] ifnotDB(my_client, name) return my_db # 表單列表 def ifnotCol(my_db, col_name): col_list = my_db.list_collection_names() if col_name in col_list: print("%s 集合已存在!"%col_name) else: print("%s 集合不存在!"%col_name) # 創建一個表單 返回表單對象 def creatCol(my_db, name): sheet_tab_one = my_db[name] ifnotCol(my_db, name) return sheet_tab_one # 增加一條數據 返回_id def addData_one(my_col, my_json): result = my_col.insert_one(my_json) print(result.inserted_id,"增加一條數據")# 返回 _id 字段 return result.inserted_id # 增加多條數據 返回所有文檔對應的 _id 值 def addData_many(my_col, my_jsons): result = my_col.insert_many(my_jsons) print(result.inserted_ids) return result.inserted_ids # 刪除一條數據 def delData_one(my_col, myquery): result = my_col.delete_one(myquery) print(result.deleted_count,"數據已刪除") # 刪除多條數據 def delData_many(my_col, myquery): result = my_col.delete_many(myquery) print(result.deleted_count,"數據已刪除") # 刪除一個表單 def delCol(my_col): my_col.drop() print("刪除表單成功") # 修改匹配到的第一條數據 def updateData_one(my_col, myquery, new_val): result = my_col.update_one(myquery, new_val) print(result.modified_count, "文檔已修改") # 修改匹配到的多條數據 def updateData_many(my_col, myquery, new_val): result = my_col.update_many(myquery, new_val) print(result.modified_count, "文檔已修改") # 按照某字段排序 默認True是正序,False是倒序 def sortData(my_col, my_key, sortB = True): if sortB: my_doc = my_col.find().sort(my_key) else: my_doc = my_col.find().sort(my_key, -1) for item in my_doc: print(item) # 查詢一條數據 def searchData_one(my_col): result = my_col.find_one() print(result) # 查詢集合中所有數據 def searchData_many(my_col, limit = 0): for item in my_col.find().limit(limit): print(item) # 根據指定條件查詢 或者正則表達式查詢(比如 my_query = { "name": { "$regex": "^S" } }) def searchData_miss(my_col, my_query): print("根據指定條件查詢: ", my_query) my_doc = my_col.find(my_query) for item in my_doc: print(item) if __name__ == "__main__": client_ip = "服務器IP地址" client_port = 27017 db_name = 'mongodb_test' col_name = 'col_test' my_json = {"name": "ShaShiDi", "url": "https://shazhenyu.blog.csdn.net/"} # 可以指定_id 我們也可以自己指定 id,插入 my_jsons = [{"_id": 1,"name": "sha", "url": "https://www.shazhenyu.com"},{"_id": 2,"name": "sha2", "url": "https://shazhenyu.com"}] my_query = {"name": "ShaShiDi"} my_query_regex = {"name": {"$regex": "^S"}} # 以下實例用于讀取 name 字段中第一個字母為 "S" 的數據 my_key = "_id" new_values = {"$set": {"name": "ShaShiDi_new"}} my_client = MongoClient(client_ip, client_port) testDB(my_client) my_db = creatDB(my_client,db_name) my_col = creatCol(my_db,col_name) # # 增加一條數據 # addData_one(my_col, my_json) # # 增加多條數據 # addData_many(my_col, my_jsons) # # 刪除一個符合條件的集合 # delData_one(my_col, my_query) # # 刪除所有符合條件的集合 # delData_many(my_col, my_query) # # 刪除該集合中的所有文檔 # delData_many(my_col, {}) # # 刪除表單 # delCol(my_col) # # 修改第一個匹配到的文檔 # updateData_one(my_col, my_query, new_values) # # 修改所有符合條件的文檔 # updateData_many(my_col, my_query, new_values) # # 按照某字段排序 默認True是正序,False是倒序 # sortData(my_col, my_key) # # 根據指定條件查詢 # searchData_miss(my_col, my_query) # # 根據正則表達式查詢 # searchData_miss(my_col, my_query_regex) # # 查詢集合中所有數據 如果寫第二個參數,就是指定條數記錄查詢 # # searchData_many(my_col) # searchData_many(my_col,2)
1、云計算,典型應用OpenStack。2、WEB前端開發,眾多大型網站均為Python開發。3.人工智能應用,基于大數據分析和深度學習而發展出來的人工智能本質上已經無法離開python。4、系統運維工程項目,自動化運維的標配就是python+Django/flask。5、金融理財分析,量化交易,金融分析。6、大數據分析。
關于“python數據庫開發之MongoDB安裝及Python3操作MongoDB數據庫的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。