最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python實現(xiàn)操作mongodb詳解

 更新時間:2025年01月28日 10:29:42   作者:qq_44801116  
這篇文章主要為大家詳細(xì)介紹了使用Python實現(xiàn)操作mongodb的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、示例

from pymongo import MongoClient
from urllib.parse import quote
class test_mongo:
    def __init__(self, host,port,user,pwd,db):
        self.host = host
        self.port = port
        self.user = user
        self.pwd = pwd
        self.db = db

    def build_conn_mongo(self):
        """
        功能:實現(xiàn)創(chuàng)建客戶端
        :return: client
        """
        escaped_username = quote(self.user, safe='')
        escaped_password = quote(self.pwd, safe='')
        # 創(chuàng)建客戶端對象,連接MongoDB服務(wù)器
        client = MongoClient('mongodb://{0}:{1}@{2}:{3}/{4}'.format(escaped_username, escaped_password, self.host, self.port, self.db))
        return client

    def check_mongo(self,query=None):
        """
        功能:查詢信息
        :param query:輸入查詢條件  eg:{"paId": "38ffefbe29ddcf3c9f574aa"}
        :return:返回信息,以及獲取查詢的條數(shù)
        """
        client = self.build_conn_mongo()
        db = client.iot_ota
        collection = db.集合名稱
        results = collection.find(query)
        count= collection.count_documents(query)
        client.close()
        return results,count

    def update_mongo_by_query(self,query, set_value):
        """
        功能:按照條件修改一個記錄
        :param query:輸入查詢條件  eg:query1 = {"paId": "38ffefbe291a375c4aa"}
        :param set_value:eg:{"$set":{"description":"yz測試"}}
        :return:返回基本信息
        """
        client = self.build_conn_mongo()
        db = client.iot_ota
        collection = db.集合名稱
        results = collection.update_one(query, set_value)
        client.close()
        return results

    def delete_package_by_query(self,query):
        """
        功能:按照條件刪除一個記錄
        :param query:輸入查詢條件  eg:{"otId":202501221}
        :return:
        """
        client = self.build_conn_mongo()
        db = client.iot_ota
        collection = db.集合名稱
        results = collection.delete_one(query)
        client.close()
        return results

二、常用指令

序號指令描述
1db = client.數(shù)據(jù)庫名獲取數(shù)據(jù)庫
2db.collection.find()篩選所有記錄
3db.collection.find({“key”:value})按照條件進(jìn)行查詢記錄
4db.collection.count_documents(query)按照條件查詢符合記錄的條數(shù)
5db.collection.update_one(query, set_value))更新一條記錄
6db.collection.delete_one(query)刪除一條記錄

三、遇到的問題

1、轉(zhuǎn)義賬戶和密碼,解決不符合RFC規(guī)范的問題

由于使用賬號和密碼中包含特殊字符出發(fā)點報如下錯誤:

Username and password must be escaped according to RFC 3986, use urllib.parse.quote_plus

解決辦法:

用Python的urllib.parse模塊中的quote函數(shù)來對用戶名和密碼進(jìn)行轉(zhuǎn)義

2、未指定權(quán)限內(nèi)數(shù)據(jù)庫,導(dǎo)致報權(quán)限錯誤

報錯:pymongo.errors.OperationFailure: Authentication failed具體如下圖

解決辦法:–由于使用的賬戶的權(quán)限只有更db_name的權(quán)限,此處如不指明具體的數(shù)據(jù)庫,則無法訪問client = MongoClient(‘mongodb://{0}:{1}@X.x.x.x:27017/db_name’.format(escaped_username,escaped_password))

3、較新版本的PyMongo中,update和remove方法已經(jīng)被棄用

解決方法:

使用update_one()和update_many()方法來進(jìn)行單條記錄或多條記錄的更新操作

使用delete_one和delete_many方法來替代‌remove

到此這篇關(guān)于使用Python實現(xiàn)操作mongodb詳解的文章就介紹到這了,更多相關(guān)Python操作mongodb內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python之Trimesh庫的使用方式

    Python之Trimesh庫的使用方式

    這篇文章主要介紹了Python之Trimesh庫的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python獲取網(wǎng)頁數(shù)據(jù)的五種方法

    Python獲取網(wǎng)頁數(shù)據(jù)的五種方法

    在 Python 中,爬蟲用于自動化獲取網(wǎng)頁數(shù)據(jù),你可以使用多種方法來抓取網(wǎng)頁內(nèi)容,具體使用哪種方法取決于網(wǎng)頁的結(jié)構(gòu)、內(nèi)容類型以及你所需的精確度,以下是常見的 5 種獲取網(wǎng)頁數(shù)據(jù)的方式,需要的朋友可以參考下
    2025-01-01
  • Python+PyQt5實現(xiàn)自動點擊神器

    Python+PyQt5實現(xiàn)自動點擊神器

    這篇文章主要為大家詳細(xì)介紹了如何利用Python和PyQt5實現(xiàn)自動點擊神器,旨在解決重復(fù)性的點擊工作,解放雙手,具有及時性和準(zhǔn)確性,需要的可以參考下
    2024-01-01
  • Python中copy和deepcopy的使用分析

    Python中copy和deepcopy的使用分析

    這篇文章主要介紹了Python中copy和deepcopy的使用,淺拷貝等于賦值,也可以通過copy實現(xiàn),copy僅拷貝對象本身,deepcopy是真正意義上的復(fù)制,深拷貝,被復(fù)制對象完全復(fù)制一遍作為獨立的新個體,新開辟一塊空間,需要詳細(xì)了解的朋友可以參考下
    2021-10-10
  • 對DataFrame數(shù)據(jù)中的重復(fù)行,利用groupby累加合并的方法詳解

    對DataFrame數(shù)據(jù)中的重復(fù)行,利用groupby累加合并的方法詳解

    今天小編就為大家分享一篇對DataFrame數(shù)據(jù)中的重復(fù)行,利用groupby累加合并的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Django+simpleui實現(xiàn)文件上傳預(yù)覽功能(詳細(xì)過程)

    Django+simpleui實現(xiàn)文件上傳預(yù)覽功能(詳細(xì)過程)

    該文章詳細(xì)介紹了如何在Django框架中實現(xiàn)文件上傳、預(yù)覽和下載功能,并使用SimpleUI美化Django后臺界面,通過創(chuàng)建模型、表單、視圖和配置URL,實現(xiàn)了文件的存儲和管理,同時,文章還提到了配置媒體文件、創(chuàng)建模板以及在生產(chǎn)環(huán)境中的部署注意事項,感興趣的朋友一起看看吧
    2025-02-02
  • Python中aiohttp的簡單使用

    Python中aiohttp的簡單使用

    aiohttp是Python中一個強(qiáng)大的異步HTTP客戶端和服務(wù)器框架,它可以幫助開發(fā)者快速構(gòu)建高性能的Web應(yīng)用程序。本文將介紹aiohttp的基本概念、使用方法和常見應(yīng)用場景,幫助讀者更好地了解和使用這個優(yōu)秀的框架
    2023-03-03
  • python 禁止函數(shù)修改列表的實現(xiàn)方法

    python 禁止函數(shù)修改列表的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猵ython 禁止函數(shù)修改列表的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 最新評論

    乌拉特后旗| 仁怀市| 齐河县| 漳浦县| 图木舒克市| 枣强县| 新津县| 拉孜县| 平乡县| 齐齐哈尔市| 麦盖提县| 枣强县| 交口县| 宿松县| 景泰县| 常州市| 丁青县| 永福县| 黑水县| 马山县| 合江县| 永顺县| 湘阴县| 宜都市| 礼泉县| 天祝| 连南| 镇远县| 苍梧县| 普兰店市| 呼伦贝尔市| 泰宁县| 平泉县| 河西区| 蓬溪县| 宜丰县| 科技| 铜山县| 南汇区| 贡觉县| 如东县|