MongoDB的配置如下:
mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/databaseName?replicaSet=<replicaSetName>
replicaSet :表示集羣的名稱,若不配置,則集羣不起作用。只會一直從主節點操作數據。
其中:
username
和password
是數據庫的登錄名和密碼。hostX
和portX
是副本集成員的地址和端口號,可以將多個副本集成員的地址和端口號用逗號分隔。databaseName
是要連接的數據庫名稱。replicaSetName
是副本集的名稱。
示例代碼如下:
var connStr = "mongodb://user:password@localhost:27017,localhost:27018/mydb?replicaSet=myReplSet";
var client = new MongoClient(connStr);
如果要做讀寫分離,可這麼寫
var mongoUrl = new MongoUrl("mongodb://localhost:27017,localhost:27018/mydb?replicaSet=myReplSet"); var settings = MongoClientSettings.FromUrl(mongoUrl); settings.ReadPreference = ReadPreference.SecondaryPreferred; //優先從子節點讀取 settings.WriteConcern = WriteConcern.WMajority; //寫操作優先從主節點操作 var client = new MongoClient(settings);
或者在配置中直接寫
mongodb://user:password@localhost:27017,localhost:27018/mydb?replicaSet=myReplSet&[option對象]
optoin對象可配置的如下:
MongoDB.Driver 驅動中連接字符串配置選項包括:(從5開始都是額外的配置)
-
Server
: 指定 MongoDB 服務器的地址和端口號,可以是單個主機名或 IP 地址,也可以是多個用逗號分隔的主機名或 IP 地址。 -
Database
: 指定連接的數據庫名稱。 -
Username
: 指定連接的用戶名。 -
Password
: 指定連接的密碼。 -
ReplicaSet
: 指定複製集名稱。 -
ReadPreference
: 指定讀取數據時的偏好設置,可以是Primary
(默認,從主節點讀取數據)、Secondary
(從節點讀取數據)、PrimaryPreferred
(優先從主節點讀取數據,如果主節點不可用則從節點讀取數據)、SecondaryPreferred
(優先從節點讀取數據,如果從節點不可用則從主節點讀取數據)、Nearest
(從最近的節點讀取數據)。 -
WriteConcern
: 指定寫入數據時的確認級別,可以是1
(默認,寫入到主節點並等待確認)、Majority
(寫入到大多數節點並等待確認)、MajorityAndPersisted
(寫入到大多數節點並等待確認,並持久化到磁盤)。 -
ConnectTimeout
: 指定連接超時時間,單位爲毫秒,默認爲30,000
毫秒。 -
SocketTimeout
: 指定套接字超時時間,單位爲毫秒,默認爲30,000
毫秒。 -
MaxConnectionIdleTime
: 指定連接最大空閒時間,單位爲毫秒,默認爲10,000
毫秒。 -
MaxConnectionLifeTime
: 指定連接最大生命週期,單位爲毫秒,默認爲30,000
毫秒。 -
MaxConnectionPoolSize
: 指定連接池最大連接數,默認爲100
。 -
MinConnectionPoolSize
: 指定連接池最小連接數,默認爲0
。 -
WaitQueueSize
: 指定等待隊列大小,默認爲500
。 -
WaitQueueTimeout
: 指定等待隊列超時時間,單位爲毫秒,默認爲2,00
毫秒。 -
Ssl
: 指定是否使用 SSL 加密連接,默認爲false
。 -
SslVerifyCertificate
: 指定是否驗證 SSL 證書,默認爲true
。 -
UseTls
: 指定是否使用 TLS 加密連接,默認爲false
。 -
AuthMechanism
: 指定認證機制,可以是SCRAM-SHA-1
、MONGODB-X509
、PLAIN
、GSSAPI
等。 -
AuthMechanismProperties
: 指定認證機制的屬性,如CANONICALIZE_HOST_NAME=true
、SERVICE_NAME=mongodb
等。
完整如下:
mongodb://user:password@localhost:27017,localhost:27018,localhost:27019/mydb?replicaSet=myrs&readPreference=secondaryPreferred&writeConcern=majority&connectTimeoutMS=30000&socketTimeoutMS=30000&maxIdleTimeMS=10000&maxLifeTimeMS=30000&maxPoolSize=100&minPoolSize=0&waitQueueSize=500&waitQueueTimeoutMS=2000&ssl=true&sslVerifyCertificate=true&tls=false&authMechanism=SCRAM-SHA-1&authMechanismProperties=CANONICALIZE_HOST_NAME=true,SERVICE_NAME=mongodb