(mongodb >=1.0.0)
MongoDB\Driver\WriteConcern::__construct — 建立新的 WriteConcern
$w
, ?整數 $wtimeout
= null
, ?布林值 $journal
= null
)建構一個新的 MongoDB\Driver\WriteConcern,這是一個不可變的值物件。
w
值 | 說明 |
---|---|
1 | 要求確認寫入操作已傳播到獨立的 mongod 或副本集中的主節點。這是 MongoDB 的預設寫入策略。 |
0 | 不要求確認寫入操作。然而,這可能會將有關通訊端例外和網路錯誤的資訊返回給應用程式。 |
<大於 1 的整數> | 大於 1 的數字僅對副本集有效,用於要求來自指定數量成員(包括主節點)的確認。 |
MongoDB\Driver\WriteConcern::MAJORITY |
要求確認寫入操作已傳播到大多數投票節點(包括主節點),並且已寫入這些節點的磁碟日誌。 在 MongoDB 3.0 之前,這指的是大多數副本集成員(不僅僅是投票節點)。 |
字串 | 字串值會被解譯為標籤集。要求確認寫入操作已傳播到具有指定標籤的副本集成員。 |
wtimeout
在失敗之前等待次要節點的時間(以毫秒為單位)。
wtimeout
會導致寫入操作在超過指定限制後返回錯誤 (WriteConcernError),即使所需的寫入策略最終會成功。當這些寫入操作返回時,MongoDB 不會撤銷在寫入策略超過 wtimeout
時間限制之前執行的成功資料修改。
如果指定,wtimeout
必須是大於或等於零的帶符號 64 位元整數。
值 | 說明 |
---|---|
0 | 無限期阻塞。這是預設值。 |
<大於 0 的整數> | 要等待直到返回的毫秒數。 |
journal
等待直到 mongod 已將寫入套用到日誌。
w
無效或 wtimeout
為負數或大於帶符號 32 位元整數的範圍,則擲出 MongoDB\Driver\Exception\InvalidArgumentException。
版本 | 說明 |
---|---|
PECL mongodb 1.7.0 | wTimeout 參數現在接受 64 位元值。 |
範例 #1 MongoDB\Driver\WriteConcern::__construct() 範例
<?php
/* 要求複本集大多數節點的寫入確認 */
$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 500);
/* 要求設定了 "MultipleDC" 標籤的節點的寫入確認 */
$wc = new MongoDB\Driver\WriteConcern("MultipleDC", 500);
?>