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

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

 更新時(shí)間:2025年01月28日 10:29:42   作者:qq_44801116  
這篇文章主要為大家詳細(xì)介紹了使用Python實(shí)現(xiàn)操作mongodb的相關(guān)知識(shí),文中的示例代碼講解詳細(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):
        """
        功能:實(shí)現(xiàn)創(chuàng)建客戶端
        :return: client
        """
        escaped_username = quote(self.user, safe='')
        escaped_password = quote(self.pwd, safe='')
        # 創(chuàng)建客戶端對(duì)象,連接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):
        """
        功能:按照條件修改一個(gè)記錄
        :param query:輸入查詢條件  eg:query1 = {"paId": "38ffefbe291a375c4aa"}
        :param set_value:eg:{"$set":{"description":"yz測(cè)試"}}
        :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):
        """
        功能:按照條件刪除一個(gè)記錄
        :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

二、常用指令

序號(hào)指令描述
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ī)范的問題

由于使用賬號(hào)和密碼中包含特殊字符出發(fā)點(diǎn)報(bào)如下錯(cuò)誤:

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

解決辦法:

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

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

報(bào)錯(cuò):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實(shí)現(xiàn)操作mongodb詳解的文章就介紹到這了,更多相關(guān)Python操作mongodb內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python之Trimesh庫的使用方式

    Python之Trimesh庫的使用方式

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

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

    在 Python 中,爬蟲用于自動(dòng)化獲取網(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實(shí)現(xiàn)自動(dòng)點(diǎn)擊神器

    Python+PyQt5實(shí)現(xiàn)自動(dòng)點(diǎn)擊神器

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

    Python中copy和deepcopy的使用分析

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

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

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

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

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

    Python中aiohttp的簡(jiǎn)單使用

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

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

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

    冕宁县| 河曲县| 海安县| 芜湖市| 筠连县| 灵台县| 汽车| 白山市| 洞头县| 临朐县| 巫溪县| 凌云县| 金乡县| 合江县| 横峰县| 阿鲁科尔沁旗| 专栏| 天门市| 文成县| 白朗县| 沁阳市| 和林格尔县| 大名县| 上饶县| 尖扎县| 修武县| 潞西市| 绥芬河市| 巴马| 景德镇市| 阿坝| 华容县| 泾川县| 五常市| 札达县| 南投市| 利津县| 靖远县| 星子县| 甘泉县| 桦南县|