中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用pymongo來連接mongo各種的形態

發布時間:2022-01-04 10:15:25 來源:億速云 閱讀:336 作者:柒染 欄目:大數據

如何使用pymongo來連接mongo各種的形態,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

NO SQL 的產品在操作方面雖然有很多 GUI 的工具,或者讓人熟悉的命令行,但這些數據庫軟件的操作,如果有程序語言的加入則會變得要方便的多,Mongodb 如果使用一些語言,例如JAVASCRIPT 在內部操作很多事情將變得簡單。通用的語言python 在操作數據庫方面已經是很成熟的東西,連接mongodb 的python的方法也很多。

今天想正規以下如何使用pymongo來連接mongo 各種的形態做一個總結。

其中也發現了網上(中文)關于這方面的一個問題。很少有講的或講清楚的。

首先為什么要使用PYMONGO,主要的原因是他是官方推出的PYTHON API,怎么安裝pymongo這與python有關,這里有一個事情就是安裝pymongo 也是可以選擇版本的, 需要根據你的生產環境安裝的pymongo的版本,來對應你的變成的環境。

如何使用pymongo來連接mongo各種的形態

如何使用pymongo來連接mongo各種的形態

雖然小版本的不同不會造成什么困擾,但最好還是要統一的python for mongodb api 的版本。

如何使用pymongo來連接mongo各種的形態

上面使用了python3 ,并且使用了pymongo API 連接 mongodb的兩種的格式,但這樣的使用方式與實際相差甚遠,屬于模型和實體之間的差別,WHY

1 你的MONGODB 如果是單機,難道沒有用戶名密碼

2 你的MONGODB  如果不是單機,是復制集怎么連接,怎么read prefer which one ,有沒有線程池,等等問題

1 如果是單機,但有用戶名密碼怎么辦

如何使用pymongo來連接mongo各種的形態

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import pymongo
import datetime
from pymongo import MongoClient

client = MongoClient('mongodb://admin:1234.com@192.168.198.56:27087/admin')

print (client)

那么使用pymongo 中的 mongoclient 使用MONGODB 標準的連接方式放到括號并用單引號標注就可以成功連接了

但大部分連接MONGODB的時候是復制集,這也是出問題最多的地方,網上大部分的要不不介紹,要不就還用mongoClient 繼續偽裝連接 mongodb的復制集中的某臺機器。

如何使用pymongo來連接mongo各種的形態

上圖雖然可以連接并可以操作mongodb 的復制集但實際上離實際上的真正靈活的操作復制集還差的遠。

1  連接沒有驗證是否成功,這里不是上面的連接不報錯,就說明連接成功了,恰恰是錯誤,報錯會在你實體操作MONGODB 的時候,才能反映出來。這就說明,我們在連接MONGODB 的時候,必須要進行一個判斷。按理說pymongo 連接如果情況異常是應該產生一些錯誤的。

為什么從3.0版本開始,MongoClient構造函數在連接服務器時不再阻塞,如果它們不可用,它也不再引發ConnectionFailure,如果用戶的憑證錯誤,它也不再引發配置錯誤。

如何使用pymongo來連接mongo各種的形態

首先上面的連接格式是mongodb 3.6后提出的 DNS seedlist connection format, 使用+srv連接字符串修飾符自動將連接的tls(或等效ssl)選項設置為true。您可以通過在查詢字符串中顯式地將tls(或等效的ssl)選項設置為false(或ssl=false)來覆蓋此行為。

那么問題來了按照標準的寫法,如果我不想按照PYMONGO 默認的設置,連接嘗試20秒嘗試后,在返回可以連接不可以連接,這樣的如果是失敗的連接我就要等待20秒,這顯然是不OK 的,

如何使用pymongo來連接mongo各種的形態

下面的寫法可以將復制集以及連接錯誤返回的速度調整到0.3秒

另外還有一些其他的參數可以添加進來

例如我想設置一個連接池最大連接10個 最小 保留2個連接  不使用 SSL 連接方式,并且讀的concernLevel 為大多數,并且如果讀趨向于從庫




#!/usr/bin/python3
# -*- coding: utf-8 -*-
import pymongo
import datetime
from pymongo import MongoClient
from pymongo.errors import ConnectionFailure
client = MongoClient('mongodb://root:1234.Com@192.168.198.56:27027,192.168.198.56:27037,192.168.198.56:27047/'
                    '?replicaSet=repl&authSource=admin&connectTimeoutMS=300&ssl=false&minPoolSize=2&maxPoolSize=10'
                    '&readConcernLevel=majority&readPreference=secondary')

try:
   client.admin.command('ismaster')
   print ("connect ok")

except ConnectionFailure:

print("can't connect mongodb.")


下圖是讀的導向的幾種方式


如何使用pymongo來連接mongo各種的形態

所以pymongo 連接單機,復制集中以上的介紹基本上夠用,如果還想在進一步了解一些其他的參數,可以訪問下面的官方網站

https://docs.mongodb.com/manual/reference/connection-string/

如何使用pymongo來連接mongo各種的形態

如何使用pymongo來連接mongo各種的形態

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凤阳县| 南漳县| 察哈| 西林县| 昭苏县| 卢氏县| 西畴县| 沙田区| 临城县| 东港市| 静乐县| 惠来县| 大关县| 淄博市| 饶阳县| 崇州市| 沁源县| 沾益县| 浪卡子县| 新蔡县| 青川县| 巴里| 石屏县| 寻甸| 武清区| 孙吴县| 松溪县| 邻水| 比如县| 临泽县| 鹤庆县| 和政县| 长白| 修水县| 马鞍山市| 准格尔旗| 山丹县| 方城县| 开鲁县| 屯门区| 永嘉县|