MongoDB學習筆記——MongoDB 連接配置


MongoDB連接標准格式:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

參數說明

Mongodb://

必填的前綴,標識當前字符串為便准鏈接格式

username:password@

可選項,給出用戶名和密碼后,在連接數據庫服務器后,驅動都會嘗試登陸這個數據庫

host

uri里唯一的必填項,數據庫的連接地址,人如果需要連接副本集,需要制定多個主機地址

:port

可選項,如果不填則默認為27017端口

/database

希望連接到的數據庫名稱,只要在設置username:password@后才會有效,如果不指定,則默認為admin數據庫

?options

可選項,如果不適用/database,則需要在前面加上/。所有連接選項都是鍵值對name=value格式,鍵值對之間使用&或;(分號)分割

   

options參數說明

connect=direct|replicaset

direct: 直接建立一個到服務器的連接。如果指定了多個host,將按先后順序挨個嘗試建立連接,直到連接建立成功為止。如果只指定了一個host,則 direct 為默認值。

replicaset: 使用creplica set semantics建立連接(即使只提供了一個host)。指定的host作為種子列表來查找完整的replica set。當指定多個host時 replicaset 為默認值。

replicaset=name

驅動驗證建立連接的replica set的名字。應用於 connect=replicaset。

slaveok=true|false

true: 對於 connect=direct 模式,驅動對列表中的第一個服務器建立連接,即使它不是主服務器。對 connect=replicaset 模式,驅動將所有寫操作發送到主節點,將所有讀操作按round robin順序分發到從節點。

false: 對 connect=direct 模式,驅動按順序嘗試所有host直到找到主節點。對 connect=replicaset 模式,驅動將只連接到主節點,並將所有讀操作和寫操作都發送到主節點。

safe=true|false

true: 驅動在每次更新操作后都發送 getlasterror 命令以確保更新成功(參考 w 和 wtimeout)。

false: 驅動每次更新操作后不發送 getlasterror 命令。

w=n

w:代表server的數量:。
w=-1 不等待,不做異常檢查

w=0 不等待,只返回網絡錯誤

w=1 檢查本機,並檢查網絡錯誤

w>1 檢查w個server,並返回網絡錯誤

應用於safe=true

wtimeoutMS=ms

寫操作超時的時間,應用於 safe=true.

fsync=true|false

是不是等待刷新數據到磁盤,應用於safe=true

journal=true|false

是不是等待提交的數據已經寫入到日志,並刷新到磁盤,應用於safe=true

maxPoolSize=n

minPoolSize=n

一些驅動會把沒用的連接關閉。 然而,如果連接數低於minPoolSize值之下, 它們不會關閉空閑的連接。注意:連接會按照需要進行創建,因此當連接池被許多連接預填充的時候,minPoolSize不會生效。

waitQueueTimeoutMS=ms

在超時之前,線程等待連接生效的總時間。如果連接池到達最大並且所有的連接都在使用,這個參數就生效了。

waitQueueMultiple=n

驅動強行限制線程同時等待連接的個數。 這個限制了連接池的倍數。

connectTimeoutMS=ms

可以打開連接的時間。

socketTimeoutMS=ms

發送和接受sockets的時間

ReadPreference

primary

主節點,默認模式,讀操作只在主節點,如果主節點不可用,報錯或者拋出異常。

primaryPreferred

首選主節點,大多情況下讀操作在主節點,如果主節點不可用,如故障轉移,讀操作在從節點。

secondary

從節點,讀操作只在從節點, 如果從節點不可用,報錯或者拋出異常。

secondaryPreferred

首選從節點,大多情況下讀操作在從節點,特殊情況(如單主節點架構)讀操作在主節點。

nearest

最鄰近節點,讀操作在最鄰近的成員,可能是主節點或者從節點

   

參考示例:

   

連接本地數據庫服務器,端口是默認的。

   

mongodb://localhost

   

使用用戶名fred,密碼foobar登錄localhostadmin數據庫。

   

mongodb://fred:foobar@localhost

   

使用用戶名fred,密碼foobar登錄localhostbaz數據庫。

   

mongodb://fred:foobar@localhost/baz

   

連接 replica pair, 服務器1example1.com服務器2example2

   

mongodb://example1.com:27017,example2.com:27017

   

連接 replica set 三台服務器 (端口 27017, 27018, 27019):

   

mongodb://localhost,localhost:27018,localhost:27019

   

連接 replica set 三台服務器, 寫入操作應用在主服務器 並且分布查詢到從服務器。

   

mongodb://host1,host2,host3/?slaveOk=true

   

直接連接第一個服務器,無論是replica set一部分或者主服務器或者從服務器。

   

mongodb://host1,host2,host3/?connect=direct;slaveOk=true

   

當你的連接服務器有優先級,還需要列出所有服務器,你可以使用上述連接方式。

   

安全模式連接到localhost:

   

mongodb://localhost/?safe=true

   

以安全模式連接到replica set,並且等待至少兩個復制服務器成功寫入,超時時間設置為2秒。

mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM