(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之前,这指的是大多数复制集成员(不仅仅是投票节点)。 |
字符串 | 字符串值被解释为标签集。请求确认写入操作已传播到具有指定标签的复制集成员。 |
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);
?>