Python對MongoDB增刪改查

来源:https://www.cnblogs.com/jiyu-hlzy/archive/2019/12/01/11968420.html
-Advertisement-
Play Games

pip install pymongo 基本使用:insert() remove() update() find() 官方推薦:insert_one() delete_one() update_one() find_one() ...


pip install pymongo

import pymongo

#   建立連接
client = pymongo.MongoClient()

#   指定資料庫   (不存在則會新建)
db = client['py_mongo']
#   刪除資料庫
# client.drop_database('py_mongo_temp')


#   創建集合
# db.create_collection('col_temp')
#   刪除集合
# print(db.drop_collection('col_temp'))
#   指定集合     (不存在則會新建)
collection = db['mongo_col']

# collection = pymongo.MongoClient()['py_mongo']['mongo_col']


基本使用:insert() 、 remove() 、 update() 、 find()

#   增   insert()
#   如果不指定_id參數,MongoDB會為文檔分配一個唯一的ObjectId
#   增加一條
# collection.insert({'_id':1,'name':'JiYu','num':0})
#   增加多條
# collection.insert(  [
#     {'name':'jiyu','num':12},
#     {'name':'jiyu','num':34},
#     {'name':'nianhua','num':12},
#     {'name':'nianhua','num':34},
# ]   )


#   刪   remove()
#   刪除集合中滿足條件的所有文檔
# collection.remove({'name':'jiyu'})
#   只刪除集合中滿足條件的第一條文檔
# collection.remove({'name':'nianhua'},multi=False)
#   刪除所有
# collection.remove()


#   改   update()
#   修改一條數據  只有name,沒有num了,整條數據變成<update>里的內容
# collection.update({'name':'jiyu'},{'name':'nianhua'})
#   指定屬性修改  $set
# collection.update({'name':'jiyu'},{'$set':{'name':'nianhua'}})
#   修改集合中所有滿足條件的文檔:multi: true
# collection.update({'name':'nianhua'},{'$set':{'name':'NianHua'}},multi=True)


#   查   find()
#   查詢所有
# for i in collection.find():
#     print(i)
#   根據條件查詢
# for i in collection.find({'name': 'NianHua'}):
#     print(i)
#   and 和 or 條件
# condition = {'$or': [{'num': 12}, {'name': 'NianHua'}]}
# for i in collection.find(condition):
#     print(i)
#   操作符
# for i in collection.find({'num': {'$gt': 20}}):
#     print(i)


官方推薦:insert_one() 、 delete_one() 、 update_one() 、 find_one()

#   增   insert_one()    insert_many()
#   添加一條
# collection.insert_one({'name':'ming','num':101})
#   添加多條
# collection.insert_many( [
#     {'name':'hong','num':111},
#     {'name':'fei','num':111}
# ] )


#   刪   delete_one()    delete_many()
#   刪除一條
# collection.delete_one({'num': 111})
#   刪除多條
# collection.delete_many({'name':'NianHua'})

#   改   update_one()    update_many()
#   需要用$進行操作,加上$set,否則會報錯:update only works with $ operators
#   修改一條
# collection.update_one({'name':'jiyu'},{'$set':{'num':99}})
#   修改多條
# collection.update_many({'name':'jiyu'},{'$set':{'num':99}})


#   查   find_one()      find()
#   查一條
# print(collection.find_one({'num':111}))
#   查找所有        find() 只是一個對象 用for 遍歷出來
for i in collection.find():
    print(i)





您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、大致效果展示圖 二、整體編碼思想 三、資料庫相關信息 SELECT * From books where ${param1} like '%${param2}%' order by createDate DESC limit ${param3},3 四、Maven 配置本地倉庫和阿裡公共包 se ...
  • 從2 3 4樹模型到紅黑樹實現 [TOC] 前言 紅黑樹,是一個高效的二叉查找樹。其定義特性保證了樹的路徑長度在黑色節點上完美平衡,使得其查找效率接近於完美平衡的二叉樹。 但是紅黑樹的實現邏輯很複雜,各種旋轉,顏色變化,直接針對其分析,大多數都是死記硬背各種例子,不太容易有個直觀的理解。實際上,紅黑 ...
  • 2019-12-02 本節內容 電腦簡史 電腦結構 操作系統簡史 二進位編碼 電腦容量換算 一、電腦簡史 二、電腦結構 三、操作系統簡史 四、二進位編碼 五、電腦容量換算 ~~MoLog ...
  • 直接在對應的vhosts.conf配置文件的location / {}中添加以下內容: location / { index index.html index.htm index.php; #autoindex on; if (!-e $request_filename) { rewrite ^(. ...
  • Java 用我們學到的知識做處一個小的項目或者游戲等等應該都或多或少的有一點點的成就感吧,下列就是我用所學的基礎知識做的猜字謎游戲,並且給他賦予了靈魂哈哈哈。有興趣的可以嘗試的用自己會的知識做一些小的游戲工具什麼的提高自己,要不然你的知識不會那麼簡單的就融會貫通是吧! 有能力的可以把他改寫的更加的 ...
  • 一、關於object中的toString​方法: 1.SUN公司在Object類中設計toString方法的目的:返回java對象的字元串的表示形式。 2.在現實的開發過程中,Object裡面的toString方法已經不夠用了,因為Object的toString方法實現​的結果不滿意。Object中 ...
  • 線程池思想概述 當我們要使用線程的時候就去創建一個線程時,雖然實現方便,但是會出現問題:如果併發的線程數量很多,並且每個線程都是執行一個時間很短的任務就結束了,這樣頻繁創建線程就會大大降低系統的效率,因為頻繁創建線程和銷毀線程需要時間。 線程池的概念 線程池:其實就是一個容納多個線程的容器,其中的線 ...
  • 你好,我是彤哥,本篇是netty系列的第五篇。 簡介 上一章我們一起學習瞭如何使用Java原生NIO實現群聊系統,這章我們一起來看看Java NIO的核心組件之一——Channel。 思維轉變 首先,我想說的最重要的一個點是,學習NIO思維一定要從BIO那種一個連接一個線程的模式轉變成多個連接(Ch ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...