新聞中心
MongoDB - 連接
在本教程我們將討論 MongoDB 的不同連接方式。

公司主營業(yè)務:成都網(wǎng)站建設、成都網(wǎng)站設計、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出崇川免費做網(wǎng)站回饋大家。
啟動 MongoDB 服務
在前面的教程中,我們已經(jīng)討論了如何啟動 MongoDB 服務,你只需要在 MongoDB 安裝目錄的 bin 目錄下執(zhí)行 mongodb 即可。
執(zhí)行啟動操作后,mongodb 在輸出一些必要信息后不會輸出任何信息,之后就等待連接的建立,當連接被建立后,就會開始打印日志信息。
你可以使用 MongoDB shell 來連接 MongoDB 服務器。你也可以使用 PHP 來連接 MongoDB。本教程我們會使用 MongoDB shell 來連接 Mongodb 服務,之后的章節(jié)我們將會介紹如何通過php 來連接MongoDB服務。
標準 URI 連接語法:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
-
mongodb:// 這是固定的格式,必須要指定。
-
username:password@ 可選項,如果設置,在連接數(shù)據(jù)庫服務器之后,驅(qū)動都會嘗試登錄這個數(shù)據(jù)庫
-
host1 必須的指定至少一個host, host1 是這個URI唯一要填寫的。它指定了要連接服務器的地址。如果要連接復制集,請指定多個主機地址。
-
portX 可選的指定端口,如果不填,默認為27017
-
/database 如果指定username:password@,連接并驗證登錄指定數(shù)據(jù)庫。若不指定,默認打開 test 數(shù)據(jù)庫。
-
?options 是連接選項。如果不使用/database,則前面需要加上/。所有連接選項都是鍵值對name=value,鍵值對之間通過&或;(分號)隔開
標準的連接格式包含了多個選項(options),如下所示:
| 選項 | 描述 |
|---|---|
| replicaSet=name | 驗證replica set的名稱。 Impliesconnect=replicaSet. |
| slaveOk=true|false |
|
| safe=true|false |
false: 在每次更新之后,驅(qū)動不會發(fā)送getLastError來確保更新成功。 |
| w=n | 驅(qū)動添加 { w : n } 到getLastError命令. 應用于safe=true。 |
| wtimeoutMS=ms | 驅(qū)動添加 { wtimeout : ms } 到 getlasterror 命令. 應用于 safe=true. |
| fsync=true|false |
|
| journal=true|false | 如果設置為 true, 同步到 journal (在提交到數(shù)據(jù)庫前寫入到實體中). 應用于 safe=true |
| connectTimeoutMS=ms | 可以打開連接的時間。 |
| socketTimeoutMS=ms | 發(fā)送和接受sockets的時間。 |
實例
使用默認端口來連接 MongoDB 的服務。
mongodb://localhost
通過 shell 連接 MongoDB 服務:
$ ./mongo MongoDB shell version: 4.0.9 connecting to: test ...
這時候你返回查看運行 ./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' 為密碼。
使用用戶名和密碼連接登錄到默認數(shù)據(jù)庫:
$ ./mongo MongoDB shell version: 4.0.9 connecting to: test
使用用戶 admin 使用密碼 123456 連接到本地的 MongoDB 服務上。輸出結(jié)果如下所示:
> mongodb://admin:123456@localhost/ ...
使用用戶名和密碼連接登錄到指定數(shù)據(jù)庫,格式如下:
mongodb://admin:123456@localhost/test
更多連接實例
連接本地數(shù)據(jù)庫服務器,端口是默認的。
mongodb://localhost
使用用戶名fred,密碼foobar登錄localhost的admin數(shù)據(jù)庫。
mongodb://fred:foobar@localhost
使用用戶名fred,密碼foobar登錄localhost的baz數(shù)據(jù)庫。
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
當你的連接服務器有優(yōu)先級,還需要列出所有服務器,你可以使用上述連接方式。
安全模式連接到localhost:
mongodb://localhost/?safe=true
以安全模式連接到replica set,并且等待至少兩個復制服務器成功寫入,超時時間設置為2秒。
mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000
網(wǎng)頁標題:創(chuàng)新互聯(lián)MongoDB教程:MongoDB-連接
當前網(wǎng)址:http://m.5511xx.com/article/cddeesh.html


咨詢
建站咨詢
