本文實例講述了Python常見MongoDB數據庫操作。分享給大家供大家參考,具體如下:
MongoDB 是一個基于分布式文件存儲的數據庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能。接下來記錄一下在使用PyMongo操作MongoDB
下載pymongo庫
pip install pymongo
前置操作
# 獲取MongoDB操作,localhost為host,27017為MongoDB默認portclient = pymongo.MongoClient("mongodb://localhost:27017/")# 操作test數據庫db = client.test# 獲取Student集合student = db.Student
插入單條數據
# 插入一條數據,并獲取返回結果res = student.insert_one({"name":"老王"})# 獲取插入之后該條數據的idobject_id = res.inserted_idprint(object_id)
插入多條數據
# 插入9條數據res = student.insert_many([{"name":"name%d"%index} for index in range(1,10)])# 獲取插入之后該9條數據的ids,object_ids為一個listobject_ids = res.inserted_idsprint(object_ids)
查詢單條數據
# 查詢單條數據,res為一個dictres = student.find_one({"name":"老王"})
查詢滿足條件的所有數據
# 查詢滿足條件的所有數據,res為一個pymongo.cursor.Cursor對象res = student.find({"name":"老王"})# 獲取數據個數print(res.count())for index in res: # index為一個dict。注意:這個循環只能進行一次,如需再次操作返回結果,需要在find一次,或將list(res),將這個返回結果保存起來 print(index)
更新
# 查詢并更新。{"name":"老王"}為查詢條件;{"$set":{"addr":"家住隔壁"}}更新數據;upsert=False找不到不插入數據,upsert=True找不到則插入數據# res為返回結果,res為一個字典對象,是之前數據的字典res = student.find_one_and_update({"name":"老王"},{"$set":{"addr":"家住隔壁"}},upsert=False)
刪除單條數據
student.delete_one({"name":"老王"})
刪除匹配條件的所有數據
student.delete_many({"name":"老王"})
附:更多MongoDB的操作
MongoDB 是一個基于分布式文件存儲的數據庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能。接下來記錄一下在終端怎么使用MongoDB:
新聞熱點
疑難解答