W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
(mongoDB >=1.0.0)
MongoDB\Driver\Manager::__construct — 創(chuàng)建新的MongoDB管理器
final public MongoDB\Driver\Manager::__construct(?string $uri = null, ?array $uriOptions = null, ?array $driverOptions = null)
使用指定的選項(xiàng)構(gòu)造新的 MongoDB\Driver\Manager 對(duì)象。
注意: 根據(jù) ? 服務(wù)器發(fā)現(xiàn)和監(jiān)控規(guī)范, 此構(gòu)造函數(shù)不執(zhí)行 I/O。 連接將按需初始化, 執(zhí)行第一個(gè)操作時(shí)。
注意: 通過連接字符串或 uriOptions 參數(shù)指定任何 SSL 或 TLS URI 選項(xiàng)時(shí),驅(qū)動(dòng)程序?qū)㈦[式 為其連接啟用 TLS。若要避免這種情況,請(qǐng)顯式禁用 tls 選項(xiàng),或者不指定任何 TLS 選項(xiàng)。
注意: 在 Unix 平臺(tái)上,MongoDB 驅(qū)動(dòng)程序?qū)κ褂?fork() 系統(tǒng)調(diào)用,而不調(diào)用 exec()。建議用戶不要 在分叉中重用 MongoDB\Driver\Manager 實(shí)例 子進(jìn)程。
uri
A ? mongodb:// 連接 URI:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[defaultAuthDb][?options]]
有關(guān)支持的 URI 選項(xiàng)的詳細(xì)信息,請(qǐng)參閱 MongoDB 手冊(cè)中的 ? 連接字符串選項(xiàng)。? 不支持連接池選項(xiàng),因?yàn)?PHP 驅(qū)動(dòng)程序不實(shí)現(xiàn)連接池。
是一個(gè) URL,因此任何特殊字符 其組件需要根據(jù) ? RFC 3986 進(jìn)行 URL 編碼。這尤其 與用戶名和密碼相關(guān),通??梢园ㄌ厥?字符,例如 、 或 。通過 Unix 域套接字連接時(shí),套接字 path 可能包含特殊字符(如斜杠),并且必須進(jìn)行編碼。 rawurlencode() 函數(shù)可用于編碼 URI 的組成部分。uri
@
:
%
該組件可用于指定 與用戶憑據(jù)關(guān)聯(lián)的數(shù)據(jù)庫名稱;但是,如果指定,則 URI 選項(xiàng)將具有優(yōu)先級(jí)。 如果既未指定,也未指定,則默認(rèn)使用數(shù)據(jù)庫。在沒有用戶憑據(jù)的情況下,該組件不起作用。defaultAuthDb
authSource
defaultAuthDb
authSource
admin
defaultAuthDb
uriOptions
其他 ? 連接字符串選項(xiàng), 這將覆蓋參數(shù)中具有相同名稱的任何選項(xiàng)。uri
選擇 | 類型 | 描述 |
---|---|---|
應(yīng)用名稱 | 字符串 | MongoDB 3.4+ 能夠使用元數(shù)據(jù)注釋連接 由連接客戶端提供。此元數(shù)據(jù)包含在 服務(wù)器在建立連接時(shí)的日志,并記錄在 啟用數(shù)據(jù)庫分析時(shí)查詢?nèi)罩舅俣容^慢。 此選項(xiàng)可用于指定應(yīng)用程序名稱,該名稱將 包含在元數(shù)據(jù)中。該值不能超過 128 個(gè)字符 在長(zhǎng)度上。 |
auth機(jī)制 | 字符串 | MongoDB 將用于身份驗(yàn)證的身份驗(yàn)證機(jī)制 連接。有關(guān)其他詳細(xì)信息和支持的列表 值,請(qǐng)參閱 MongoDB 手冊(cè)中的 ? 身份驗(yàn)證選項(xiàng)。 |
authMechanism屬性 | 數(shù)組 | 所選身份驗(yàn)證機(jī)制的屬性。對(duì)于其他 有關(guān)詳細(xì)信息和支持的屬性列表,請(qǐng)參閱 ? 驅(qū)動(dòng)程序身份驗(yàn)證規(guī)范。
|
authSource | 字符串 | 與用戶憑據(jù)關(guān)聯(lián)的數(shù)據(jù)庫名稱。違約 添加到連接 URI 的數(shù)據(jù)庫組件,如果兩者都未指定,則添加到數(shù)據(jù)庫。 對(duì)于將憑據(jù)存儲(chǔ)委派給的身份驗(yàn)證機(jī)制 其他服務(wù)(例如 GSSAPI),這應(yīng)該是 . |
canonicalize主機(jī)名 | 布爾 | 如果 此選項(xiàng)是 URI 選項(xiàng)屬性的已棄用別名。 |
壓縮機(jī) | 字符串 | 客戶端的壓縮器的優(yōu)先級(jí)、逗號(hào)分隔的列表 想要使用。僅當(dāng)客戶端和服務(wù)器 共享任何通用壓縮機(jī),以及每個(gè)壓縮機(jī)中使用的壓縮機(jī) 方向?qū)⑷Q于服務(wù)器的個(gè)別配置 或司機(jī)。有關(guān)詳細(xì)信息,請(qǐng)參閱 ? 驅(qū)動(dòng)程序壓縮規(guī)范。 |
connectTimeoutMS (連接超時(shí)MS) | 國際 | 超時(shí)前嘗試連接的時(shí)間(以毫秒為單位)。 默認(rèn)值為 10,000 毫秒。 |
直接連接 | 布爾 | 此選項(xiàng)可用于控制副本集發(fā)現(xiàn)行為 當(dāng)連接字符串中僅提供單個(gè)主機(jī)時(shí)。由 默認(rèn)情況下,在連接字符串中提供單個(gè)成員將 建立直接連接或發(fā)現(xiàn)其他成員 取決于 URI 選項(xiàng)是否 分別被省略或存在。指定 |
gssapiServiceName | 字符串 | 連接到 Kerberized MongoDB 時(shí)設(shè)置 Kerberos 服務(wù)名稱 實(shí)例。此值必須與 MongoDB 上設(shè)置的服務(wù)名稱匹配 實(shí)例(即 ? saslServiceName 服務(wù)器參數(shù))。默認(rèn)值為 。 此選項(xiàng)是 URI 選項(xiàng)屬性的已棄用別名。 |
心跳頻率MS | 國際 | 指定驅(qū)動(dòng)程序檢查之間的間隔(以毫秒為單位) MongoDB 拓?fù)?,從上次檢查的末尾開始計(jì)數(shù) 直到下一個(gè)開始。默認(rèn)值為 60,000 毫秒。 根據(jù) ? 服務(wù)器發(fā)現(xiàn)和監(jiān)視規(guī)范, 此值不能小于 500 毫秒。 |
雜志 | 布爾 | 對(duì)應(yīng)于默認(rèn)寫入關(guān)注點(diǎn)的參數(shù)。如果 |
負(fù)載平衡 | 布爾 | 指定驅(qū)動(dòng)程序是否連接到 MongoDB 集群 通過負(fù)載均衡器。如果 |
localThresholdMS | 國際 | 用于選擇的延遲窗口的大?。ㄒ院撩霝閱挝唬?多個(gè)合適的 MongoDB 實(shí)例,同時(shí)解析讀取 偏好。默認(rèn)值為 15 毫秒。 |
maxStalenessSeconds | 國際 | 對(duì)應(yīng)于讀取首選項(xiàng)的 .以秒為單位指定如何 在客戶端停止使用它進(jìn)行讀取之前,輔助數(shù)據(jù)庫可能會(huì)過時(shí) 操作。默認(rèn)情況下,沒有最大過時(shí)和客戶端 在選擇將 讀取操作。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB\Driver\ReadPreference。 如果指定,則最大過時(shí)性必須是有符號(hào)的 32 位整數(shù) 大于或等于 |
密碼 | 字符串 | 正在進(jìn)行身份驗(yàn)證的用戶的密碼。此選項(xiàng)很有用 如果密碼包含特殊字符,否則會(huì) 需要對(duì)連接 URI 進(jìn)行 URL 編碼。 |
readConcernLevel | 字符串 | 對(duì)應(yīng)于讀取關(guān)注點(diǎn)的參數(shù)。指定讀取隔離級(jí)別。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB\Driver\ReadConcern。level |
readPreference | 字符串 | 對(duì)應(yīng)于讀取首選項(xiàng)的參數(shù)。默認(rèn)值為 。詳情請(qǐng)見 請(qǐng)參閱 MongoDB\Driver\ReadPreference。 |
readPreference標(biāo)簽 | 數(shù)組 | 對(duì)應(yīng)于讀取首選項(xiàng)的參數(shù)。標(biāo)記集允許您將讀取操作定位到特定的 副本集的成員。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB\Driver\ReadPreference。
|
replicaSet | 字符串 | 指定副本集的名稱。 |
retryReads | 布爾 | 指定驅(qū)動(dòng)程序是否應(yīng)自動(dòng)重試 某些由于暫時(shí)性網(wǎng)絡(luò)錯(cuò)誤而失敗的讀取操作 或副本集選舉。此功能需要 MongoDB 3.6+。 默認(rèn)值為 有關(guān)詳細(xì)信息,請(qǐng)參閱 ? 可重試讀取規(guī)范。 |
retryWrites的 | 布爾 | 指定驅(qū)動(dòng)程序是否應(yīng)自動(dòng)重試 某些由于暫時(shí)性網(wǎng)絡(luò)錯(cuò)誤而失敗的寫入操作 或副本集選舉。此功能需要 MongoDB 3.6+。 默認(rèn)值為 有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB 手冊(cè)中的 ? 可重試寫入。 |
安全 | 布爾 | 如果 此選項(xiàng)已棄用,不應(yīng)使用。 |
服務(wù)器選擇超時(shí)MS | 國際 | 指定阻止服務(wù)器選擇的時(shí)間(以毫秒為單位) 在拋出異常之前。默認(rèn)值為 30,000 毫秒。 |
serverSelectionTryOnce | 布爾 |
|
套接字檢查間隔MS | 國際 | 如果最近沒有使用插座,驅(qū)動(dòng)程序必須通過 一個(gè)命令,然后再將其用于任何 操作。默認(rèn)值為 5,000 毫秒。 |
套接字超時(shí)MS | 國際 | 嘗試在套接字上發(fā)送或接收的時(shí)間(以毫秒為單位) 在超時(shí)之前。默認(rèn)值為 300,000 毫秒(即 5 毫秒 分鐘)。 |
srvMax主機(jī) | 國際 | 最初隨機(jī)選擇的最大 SRV 結(jié)果數(shù) 填充種子列表,或者在 SRV 輪詢期間將新主機(jī)添加到 拓?fù)?。默認(rèn)值為(即無最大值)。 |
srvServiceName | 字符串 | 用于在初始 DNS 種子列表中查找 SRV 的服務(wù)名稱 發(fā)現(xiàn)和 SRV 輪詢。默認(rèn)值為 。 |
SSL公司 | 布爾 | 如果 此選項(xiàng)是 URI 選項(xiàng)的已棄用別名。 |
TLS的 | 布爾 | 如果 |
tlsAllowInvalidCertificates | 布爾 | 指定驅(qū)動(dòng)程序是否應(yīng)在服務(wù)器的 TLS 證書無效。默認(rèn)值為 警告 禁用證書驗(yàn)證會(huì)造成漏洞。 |
TLSALOVinvaldhosames | 布爾 | 指定驅(qū)動(dòng)程序在出現(xiàn) 服務(wù)器的主機(jī)名與指定的主機(jī)名不匹配 TLS 證書。默認(rèn)值為 警告 禁用證書驗(yàn)證會(huì)造成漏洞。允許 無效的主機(jī)名可能會(huì)使驅(qū)動(dòng)程序遭受 ? 中間人攻擊。 |
tlsCAFile | 字符串 | 包含單個(gè)或捆綁證書的文件路徑 建立 TLS 連接時(shí)被視為受信任的機(jī)構(gòu)。 默認(rèn)情況下將使用系統(tǒng)證書存儲(chǔ)。 |
tlsCertificateKeyFile | 字符串 | 客戶端證書文件或客戶端私鑰文件的路徑; 如果兩者都需要,則文件應(yīng)為 級(jí) 聯(lián)。 |
tlsCertificateKeyFilePassword | 字符串 | 用于解密客戶端私鑰的密碼(即 URI 選項(xiàng)) 用于 TLS 連接。 |
tlsDisableCertificateRevocationCheck | 布爾 | 如果 |
tlsDisableOCSPEndpointCheck | 布爾 | 如果 |
tls不安全 | 布爾 | 盡可能放寬 TLS 約束。指定 警告 禁用證書驗(yàn)證會(huì)造成漏洞。允許 無效的主機(jī)名可能會(huì)使驅(qū)動(dòng)程序遭受 ? 中間人攻擊。 |
用戶名 | 字符串 | 正在進(jìn)行身份驗(yàn)證的用戶的用戶名。此選項(xiàng)很有用 如果用戶名包含特殊字符,否則會(huì) 需要對(duì)連接 URI 進(jìn)行 URL 編碼。 |
在 | 整數(shù)|字符串 | 對(duì)應(yīng)于默認(rèn)寫入關(guān)注點(diǎn)的參數(shù)。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB\Driver\WriteConcern。 |
w超時(shí)MS | 整數(shù)|字符串 | 對(duì)應(yīng)于默認(rèn)寫入關(guān)注點(diǎn)的參數(shù)。指定時(shí)間限制, 以毫秒為單位,用于寫入問題。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB\Driver\WriteConcern。 如果指定,則必須是有符號(hào)的 32 位 整數(shù)大于或等于零。 |
zlibCompressionLevel | 國際 | 指定用于 zlib 壓縮器的壓縮級(jí)別。這 如果 URI 選項(xiàng)。有關(guān)詳細(xì)信息,請(qǐng)參閱 ? 驅(qū)動(dòng)程序壓縮規(guī)范。 |
driverOptions
選擇 | 類型 | 描述 | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Allo_invalid_hostname | 布爾 | 如果 允許無效的主機(jī)名可能會(huì)使驅(qū)動(dòng)程序面臨 ? 中間人攻擊。 此選項(xiàng)是 URI 選項(xiàng)的已棄用別名。 | ||||||||||||||||||||||||||||||
自動(dòng)加密 | 數(shù)組 | 提供用于啟用自動(dòng)客戶端字段級(jí)別的選項(xiàng) 加密。
支持以下選項(xiàng):
| ||||||||||||||||||||||||||||||
ca_dir | 字符串 | 正確哈希證書目錄的路徑。系統(tǒng) 默認(rèn)情況下將使用證書存儲(chǔ)。 | ||||||||||||||||||||||||||||||
ca_file | 字符串 | 包含單個(gè)或捆綁證書的文件路徑 建立 TLS 連接時(shí)被視為受信任的機(jī)構(gòu)。 默認(rèn)情況下將使用系統(tǒng)證書存儲(chǔ)。 此選項(xiàng)是 URI 選項(xiàng)的已棄用別名。 | ||||||||||||||||||||||||||||||
上下文 | 資源 | 要用作的 SSL 上下文選項(xiàng) 如果驅(qū)動(dòng)程序選項(xiàng)或其等效的 URI 選項(xiàng)(如果有)則回退, 未指定。請(qǐng)注意,驅(qū)動(dòng)程序不會(huì)咨詢默認(rèn)值 流上下文(即 stream_context_get_default())。以下 支持上下文選項(xiàng):
支持此選項(xiàng)以實(shí)現(xiàn)向后兼容性,但應(yīng) 被視為已棄用。 | ||||||||||||||||||||||||||||||
crl_file | 字符串 | 證書吊銷列表文件的路徑。 | ||||||||||||||||||||||||||||||
disableClientPersistence | 布爾 | 如果
| ||||||||||||||||||||||||||||||
司機(jī) | 數(shù)組 | 允許自定義驅(qū)動(dòng)程序?qū)⒆约旱脑獢?shù)據(jù)追加到服務(wù)器 握手。默認(rèn)情況下,驅(qū)動(dòng)程序會(huì)提交自己的名稱、版本和 平臺(tái)(i.e. PHP版本)在握手中。自定義驅(qū)動(dòng)程序可以 指定此數(shù)組的 、 和 鍵的字符串,這些字符串將是 附加到握手文檔中的相應(yīng)字段。
| ||||||||||||||||||||||||||||||
pem_file | 字符串 | 用于客戶端身份驗(yàn)證的 PEM 編碼證書的路徑。 此選項(xiàng)是 URI 選項(xiàng)的已棄用別名。 | ||||||||||||||||||||||||||||||
pem_pwd | 字符串 | PEM 編碼證書的密碼(如果適用)。 此選項(xiàng)是 URI 選項(xiàng)的已棄用別名。 | ||||||||||||||||||||||||||||||
服務(wù)器Api | MongoDB\驅(qū)動(dòng)程序\ServerApi | 此選項(xiàng)用于聲明管理器的服務(wù)器 API 版本。 如果省略,則不會(huì)聲明 API 版本。 | ||||||||||||||||||||||||||||||
weak_cert_validation | 布爾 | 如果 此選項(xiàng)是 URI 選項(xiàng)的已棄用別名。 |
版本 | 說明 |
---|---|
PECL mongodb 1.16.0 | 用于客戶端加密的 AWS KMS 提供商現(xiàn)在接受一個(gè)選項(xiàng),該選項(xiàng)可用于 使用臨時(shí) AWS 憑證進(jìn)行身份驗(yàn)證。 添加到驅(qū)動(dòng)程序選項(xiàng)的字段中。 如果為 或 KMS 提供程序指定了空文檔,驅(qū)動(dòng)程序?qū)L試 使用 ? 自動(dòng)憑據(jù)配置提供程序。 |
PECL mongodb 1.15.0 | 如果為 KMS 指定了空文檔 provider,驅(qū)動(dòng)程序?qū)L試使用 ? 自動(dòng)憑據(jù)配置提供程序。 |
PECL mongodb 1.14.0 | 添加了 和 自動(dòng)加密選項(xiàng)。 與以下內(nèi)容相關(guān)的其他選項(xiàng)包括 現(xiàn)在支持自動(dòng)加密 選擇。 |
PECL mongodb 1.13.0 | 添加了 和 URI 選項(xiàng)。 |
PECL mongodb 1.12.0 | 現(xiàn)在支持將 KMIP 作為 KMS 提供商進(jìn)行客戶端加密和 可以在驅(qū)動(dòng)程序選項(xiàng)的字段中配置。此外,TLS 現(xiàn)在可以在驅(qū)動(dòng)程序選項(xiàng)字段中配置 KMS 提供商的選項(xiàng)。 |
PECL mongodb 1.11.0 | 添加了 URI 選項(xiàng)。 |
PECL mongodb 1.10.0 | 添加了驅(qū)動(dòng)程序選項(xiàng)。 現(xiàn)在支持將 Azure 和 GCP 作為客戶端的 KMS 提供程序 加密,并且可以在驅(qū)動(dòng)程序選項(xiàng)的字段中配置。Base64 編碼 字符串現(xiàn)在被接受為 MongoDB\BSON\Binary 的替代選項(xiàng)。 |
PECL mongodb 1.8.0 | 添加了 、 和 URI 選項(xiàng)。 添加了驅(qū)動(dòng)程序選項(xiàng)。 |
PECL mongodb 1.7.0 | 添加了驅(qū)動(dòng)程序選項(xiàng)。 通過參數(shù)指定任何 SSL 或 TLS 選項(xiàng)現(xiàn)在將隱式啟用 TLS,就像 相應(yīng)的 URI 選項(xiàng)。 |
PECL mongodb 1.6.0 | 添加了 、 、 、 、 、 、 和 URI 選項(xiàng)。 URI 選項(xiàng)默認(rèn)為 現(xiàn)在,通過連接字符串或參數(shù)指定任何 SSL 或 TLS URI 選項(xiàng)將隱式啟用 TLS,除非 或 |
PECL mongodb 1.5.0 |
|
PECL mongodb 1.4.0 | 添加了 、 和 URI 選項(xiàng)。 |
PECL mongodb 1.3.0 | 參數(shù)現(xiàn)在接受和選項(xiàng)。以前,這些 選項(xiàng)僅在參數(shù)中受支持。 |
PECL mongodb 1.2.0 | 該參數(shù)默認(rèn)為 。默認(rèn)端口仍為 。 添加了 URI 選項(xiàng)。 添加了 、 、 、 、 、 和 驅(qū)動(dòng)程序選項(xiàng)。 PHP Streams API 不再用于套接字通信。URI 選項(xiàng)現(xiàn)在默認(rèn)為 10 秒,而不是以前版本中的default_socket_timeout。此外,驅(qū)動(dòng)程序不再通過驅(qū)動(dòng)程序選項(xiàng)支持所有 SSL 上下文選項(xiàng)。 |
PECL mongodb 1.1.0 | 該參數(shù)是可選的,默認(rèn)為 。 |
示例 #1 MongoDB\Driver\Manager::__construct() 基本示例
連接到獨(dú)立的 MongoDB 節(jié)點(diǎn):
<?php
$manager = new MongoDB\Driver\Manager("mongodb://example.com:27017");
?>
通過 Unix 域套接字連接到獨(dú)立的 MongoDB 節(jié)點(diǎn)。套接字 path 可能包含特殊字符,例如斜杠,并且應(yīng)該進(jìn)行編碼 使用 rawurlencode()。
<?php
$manager = new MongoDB\Driver\Manager("mongodb://" . rawurlencode("/tmp/mongodb-27017.sock"));
?>
連接到副本集:
<?php
$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");
?>
連接到分片集群(即一個(gè)或多個(gè) mongos 實(shí)例):
<?php
$manager = new MongoDB\Driver\Manager("mongodb://mongos1.example.com,mongos2.example.com/");
?>
使用特定用戶和數(shù)據(jù)庫的身份驗(yàn)證憑據(jù)連接到 MongoDB:
<?php
$manager = new MongoDB\Driver\Manager("mongodb://myusername:mypassword@example.com/?authSource=databaseName");
?>
使用特定身份驗(yàn)證憑據(jù)連接到MongoDB user 和 database,其中用戶名或密碼包含 字符(例如 、 、 )。在以下示例中,密碼字符串已手動(dòng)轉(zhuǎn)義;但是,rawurlencode() 也可用于轉(zhuǎn)義 URI 組件 可能包含特殊字符。@
:
%
myp@ss:w%rd
<?php
$manager = new MongoDB\Driver\Manager("mongodb://myusername:myp%40ss%3Aw%25rd@example.com/?authSource=databaseName");
?>
使用 X509 身份驗(yàn)證連接到 MongoDB:
<?php
$manager = new MongoDB\Driver\Manager(
"mongodb://example.com/?ssl=true&authMechanism=MONGODB-X509",
[],
[
"pem_file" => "/path/to/client.pem",
]
);
?>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: