欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用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實(shí)現(xiàn)簡單的ui界面的設(shè)計(jì)步驟(適合小白)

    Python實(shí)現(xiàn)簡單的ui界面的設(shè)計(jì)步驟(適合小白)

    當(dāng)我們書寫一個(gè)python程序時(shí),我們?cè)诳刂婆_(tái)輸入信息時(shí),往往多有不便,并且為了更加美觀且直觀的方式輸入控制命令,我們常常設(shè)計(jì)一個(gè)ui界面,這樣就能方便執(zhí)行相關(guān)功能,如計(jì)算器、日歷等界面,本博客是為了給ui設(shè)計(jì)的小白進(jìn)行講解,需要的朋友可以參考下
    2024-07-07
  • 詳解Python中Pygame鍵盤事件

    詳解Python中Pygame鍵盤事件

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識(shí),文章圍繞著Pygame鍵盤事件展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 十個(gè)常見的Python腳本詳細(xì)介紹及代碼舉例

    十個(gè)常見的Python腳本詳細(xì)介紹及代碼舉例

    這篇文章主要給大家介紹了十個(gè)常見的Python腳本的相關(guān)資料,包括批量重命名文件、下載網(wǎng)頁圖片、發(fā)送郵件通知、讀取和寫入CSV文件、爬取網(wǎng)頁數(shù)據(jù)、自動(dòng)化測(cè)試、圖像處理、數(shù)據(jù)可視化以及創(chuàng)建簡單的Web應(yīng)用,需要的朋友可以參考下
    2024-11-11
  • Python3中.whl文件創(chuàng)建及使用

    Python3中.whl文件創(chuàng)建及使用

    本文主要介紹了Python3中.whl文件創(chuàng)建及使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 使用Python的PEAK來適配協(xié)議的教程

    使用Python的PEAK來適配協(xié)議的教程

    這篇文章主要介紹了使用Python的PEAK來適配協(xié)議的教程,來自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • python 已知平行四邊形三個(gè)點(diǎn),求第四個(gè)點(diǎn)的案例

    python 已知平行四邊形三個(gè)點(diǎn),求第四個(gè)點(diǎn)的案例

    這篇文章主要介紹了python 已知平行四邊形三個(gè)點(diǎn),求第四個(gè)點(diǎn)的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Django中常遇到的錯(cuò)誤問題

    Django中常遇到的錯(cuò)誤問題

    在Django開發(fā)中,設(shè)置DEBUG=False時(shí)需要配置ALLOWED_HOSTS以防止報(bào)錯(cuò),此外,如果django-admin.py命令找不到,需添加Django的安裝路徑到系統(tǒng)環(huán)境變量,此文還提供了一些常見Django錯(cuò)誤的解決方法,如數(shù)據(jù)庫添加中文報(bào)錯(cuò)、信號(hào)無法觸發(fā)等問題
    2024-09-09
  • Django組件content-type使用方法詳解

    Django組件content-type使用方法詳解

    這篇文章主要介紹了Django組件content-type使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python批量爬取圖片的方法詳解

    python批量爬取圖片的方法詳解

    這篇文章給大家介紹了如何使用python批量爬取圖片,文中通過代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • Python實(shí)現(xiàn)讀取HTML表格 pd.read_html()

    Python實(shí)現(xiàn)讀取HTML表格 pd.read_html()

    這篇文章主要介紹了Python實(shí)現(xiàn)讀取HTML表格 pd.read_html(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評(píng)論