mongo 筆記

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
  • mongodb:// 這是固定的格式,必需要指定。mongodb

  • username:password@ 可選項,若是設置,在鏈接數據庫服務器以後,驅動都會嘗試登錄這個數據庫shell

  • host1 必須的指定至少一個host, host1 是這個URI惟一要填寫的。它指定了要鏈接服務器的地址。若是要鏈接複製集,請指定多個主機地址。數據庫

  • portX 可選的指定端口,若是不填,默認爲27017安全

  • /database 若是指定username:password@,鏈接並驗證登錄指定數據庫。若不指定,默認打開 test 數據庫。服務器

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

標準的鏈接格式包含了多個選項(options),以下所示:spa

選項 描述
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的時間。

實例

使用默認端口來鏈接 MongoDB 的服務。get

mongodb://localhost

經過 shell 鏈接 MongoDB 服務:同步

$ ./mongo MongoDB shell version: 4.0.9 connecting to: test ...

這時候你返回查看運行 ./mongod 命令的窗口,能夠看到是從哪裏鏈接到MongoDB的服務器,您能夠看到以下信息:it

……省略信息…… 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: 4.0.9 connecting to: test

使用用戶 admin 使用密碼 123456 鏈接到本地的 MongoDB 服務上。輸出結果以下所示:

> 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
相關文章
相關標籤/搜索