程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MongoDB 連接

編輯:MongoDB基礎知識

MongoDB - 連接

在本教程我們將討論 MongoDB 的不同連接方式。


啟動 MongoDB服務

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

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

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



通過shell連接MongoDB服務

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

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

mongodb://localhost

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

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> mongodb://localhostmongodb://localhost
... 

這時候你返回查看運行 ./mongod 命令的窗口,可以看到是從哪裡連接到MongoDB的服務器,您可以看到如下信息:

……省略信息……
2015-09-25T17:22:27.336+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2015-09-25T17:22:27.336+0800 I CONTROL  [initandlisten] options: { storage: { dbPath: "/data/db" } }
2015-09-25T17:22:27.350+0800 I NETWORK  [initandlisten] waiting for connections on port 27017
2015-09-25T17:22:36.012+0800 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:37310 #1 (1 connection now open)  # 該行表明一個來自本機的連接

……省略信息……


MongoDB連接命令格式

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

使用用戶名和密碼連接登陸到默認數據庫:

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
mongodb://admin:123456@localhost/

以上命令中,用戶 admin 使用密碼 123456 連接到本地的 MongoDB 服務上。輸出結果如下所示:<、p>

> mongodb://admin:123456@localhost/
... 

使用用戶名和密碼連接登陸到指定數據庫:

連接到指定數據庫的格式如下:

mongodb://admin:123456@localhost/test

更多連接實例

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

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

參數選項說明

標准格式:

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 如果設置為 true, 同步到 journal (在提交到數據庫前寫入到實體中). 應用於 safe=true connectTimeoutMS=ms 可以打開連接的時間。 socketTimeoutMS=ms 發送和接受sockets的時間。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved