MongoDB的鏈接字符串

本文導讀:MongoDB數據庫與傳統的關係型數據庫相比,它具備操做簡單、徹底免費、源碼公開等特色,這使MongoDB產品普遍應用於各類大型門戶網站和專業網站。因爲MongoDB鏈接並不支持HTTP協議,全部你不能直接經過瀏覽器訪問MongoDB,下面詳細介紹MongoDB中鏈接字符串的編寫html

1、MongoDB鏈接字符串經常使用格式mongodb

 

mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]數據庫

 

備註:字符串鏈接不區分大小寫,並不是全部MongoDB驅動都支持完整的鏈接字符串,不支持此格式鏈接字串的驅動會有替代鏈接方案,具體請參照驅動自身的說明文檔,看看如何定義uri標準鏈接的。瀏覽器

 

一、參數說明安全

 

     mongodb:// 這是固定的格式,必需要指定。服務器

 username:password@ 可選項,若是設置,在鏈接數據庫服務器以後,驅動都會嘗試登錄這個數據庫 host1 必須的指定至少一個hostsocket

    host1 是這個URI惟一要填寫的。它指定了要鏈接服務器的地址。若是要鏈接複製集,請指定多個主機地址。網站


 :portX 可選的指定端口,若是不填,默認爲27017spa

 /database 若是指定username:password@,鏈接並驗證登錄指定數據庫。若不指定,默認打開admin數據庫。線程


 ?options 是鏈接選項。若是不使用/database,則前面須要加上/。全部鏈接選項都是鍵值對name=value,鍵值對之間經過&或;(分號)隔開

 

二、options 是鏈接參數

 

  • connect=direct|replicaSet
    • direct: 鏈接方式爲單個服務器。若是提供了多個主機地址,創建鏈接以後,按順序訪問。若是僅僅指定了一個主機,direct是默認值。
    • replicaSet: 就和描述的那樣,鏈接到replica set . 這個主機地址列表,是爲了發現replica set。若是鏈接多個主機replicaSet是默認值。

 

  • replicaSet=name
    • 驗證replica set的名稱。 Impliesconnect=replicaSet.

 

  • slaveOk=true|false
    • true:在connect=direct模式下,驅動會鏈接第一臺機器,即便這臺服務器不是主。在connect=replicaSet模式下,驅動會發送全部的寫請求到主而且把讀取操做分佈在其餘從服務器。
    • false: 在 connect=direct模式下,驅動會自動找尋主服務器. 在connect=replicaSet 模式下,驅動僅僅鏈接主服務器,而且全部的讀寫命令都鏈接到主服務器。

 

  • safe=true|false
    • true: 在執行更新操做以後,驅動都會發送getLastError命令來確保更新成功。(還要參考wtimeoutMS).
    • false: 在每次更新以後,驅動不會發送getLastError來確保更新成功。

 

  • w=n
    • 驅動添加 { w : n } 到getLastError命令. 應用於safe=true。

 

  • wtimeoutMS=ms
    • 驅動添加 { wtimeout : ms } 到 getlasterror 命令. 應用於 safe=true.

 

  • fsync=true|false
    • true: 驅動添加 { fsync : true } 到 getlasterror 命令.應用於 safe=true.
    • false: 驅動不會添加到getLastError命令中。.

 

  • maxPoolSize=n
  • minPoolSize=n
    • 一些驅動會把沒用的鏈接關閉。 然而,若是鏈接數低於minPoolSize值之下, 它們不會關閉空閒的鏈接。注意的是鏈接會按照須要進行建立,所以當鏈接池被許多鏈接預填充的時候,minPoolSize不會生效。

 

  • waitQueueTimeoutMS=ms
    • 在超時以前,線程等待鏈接生效的總時間。若是鏈接池到達最大而且全部的鏈接都在使用,這個參數就生效了。

 

  • waitQueueMultiple=n
    • 驅動強行限制線程同時等待鏈接的個數。 這個限制了鏈接池的倍數。

 

  • connectTimeoutMS=ms
    • 能夠打開鏈接的時間。

 

  • socketTimeoutMS=ms
    • 發送和接受sockets的時間

 

 

2、MongoDB的鏈接字符串實例

 

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

 mongodb://localhost

 

 二、使用用戶名fred,密碼foobar登陸localhost的admin數據庫。

mongodb://fred:foobar@localhost

 

三、使用用戶名fred,密碼foobar登陸localhost的baz數據庫

mongodb://fred:foobar@localhost/baz

 

四、鏈接 replica pair, 服務器1爲example1.com服務器2爲example2

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

 
注:原文地址http://www.studyofnet.com/news/337.html
相關文章
相關標籤/搜索