(mongodb >=1.0.0)
MongoDB\Driver\WriteConcern::__construct — 创建一个新的 WriteConcern
$w
, ?int $wtimeout
= null
, ?bool $journal
= null
)构造一个新的 MongoDB\Driver\WriteConcern,这是一个不可变的值对象。
w
值 | 描述 |
---|---|
1 | 请求确认写入操作已传播到独立的 mongod 或副本集中的主节点。这是 MongoDB 的默认写入关注度。 |
0 | 请求不确认写入操作。但是,这可能会将有关套接字异常和网络错误的信息返回到应用程序。 |
<大于 1 的整数> | 大于 1 的数字仅对副本集有效,以请求从指定数量的成员(包括主节点)确认。 |
MongoDB\Driver\WriteConcern::MAJORITY |
请求确认写入操作已传播到大多数投票节点(包括主节点),并且已写入这些节点的磁盘日志中。 在 MongoDB 3.0 之前,这指的是大多数副本集成员(不仅仅是投票节点)。 |
string | 字符串值被解释为标签集。请求确认写入操作已传播到具有指定标签的副本集成员。 |
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);
?>