天天看點

MongoDB 連接配接

在前面的教程中,我們已經讨論了如何啟動MongoDB服務,你隻需要在MongoDB安裝目錄的bin目錄下執行'mongod'即可。

執行啟動操作後,mongodb在輸出一些必要資訊後不會輸出任何資訊,之後就等待連接配接的建立,當連接配接被建立後,就會開始列印日志資訊。

你可以使用MongoDB shell 來連接配接 MongoDB 伺服器。你也可以使用PHP來連接配接mongodb。本教程我們會使用 MongoDB shell來連接配接Mongodb服務,之後的章節我們将會介紹如何通過php 來連接配接MongoDB服務。

預設情況下,MongoDB的啟動端口為27017。比MongoDB啟動端口大1000的端口為MongoDB的web使用者界面,你可以再浏覽器中輸入http://localhost:28017 來通路MongoDB的web使用者界面。

你可以通過執行以下指令來連接配接MongoDB的服務。

注意:localhost為主機名,這個選項是必須的:

mongodb://localhost

當你執行以上指令時,你可以看到以下輸出結果:

MongoDB 連接配接

如果你檢查從哪裡連接配接到MongoDB的伺服器,您可以看到如下資訊:

最後一行(标記處),列印了你成功連接配接上MongoDB服務的資訊。

使用使用者名和密碼連接配接到MongoDB伺服器,你必須使用 'username:password@hostname/dbname' 格式,'username'為使用者名,'password' 為密碼。

使用使用者名和密碼連接配接登陸到預設資料庫:<、p>

mongodb://mongo_admin:AxB6_w3r@localhost/

以上指令中,使用者 mongo_admin使用密碼AxB6_w3r連接配接到本地的MongoDB服務上。輸出結果如下所示:<、p>

使用使用者名和密碼連接配接登陸到指定資料庫:

連接配接到指定資料庫的格式如下:

mongodb://mongo_admin:AxB6_w3r@localhost/w3r

連接配接本地資料庫伺服器,端口是預設的。

使用使用者名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

标準格式:

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

标準的連接配接格式包含了多個選項(options),如下所示:

選項

描述

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指令中。

journal=true|false

如果設定wie true, 同步到 journal (在送出到資料庫前寫入到實體中). 應用于 safe=true

connectTimeoutMS=ms

可以打開連接配接的時間。

socketTimeoutMS=ms

發送和接受sockets的時間。