这个是个对mongodb的写入性能、以及确保数据一致性的控制设置,非常重要的一个类
1、final public MongoDB\Driver\WriteConcern::__construct ( string|int $w [, integer $wtimeout [, boolean $journal ]] )
参数:$w
1:默认的writeConcern,数据写入到Primary就向客户端发送确认
0:对客户端的写入不需要发送任何确认,适用于性能要求高,但不关注正确性的场景
majority:数据写入到副本集大多数成员后向客户端发送确认,适用于对数据安全性要求比较高的场景,该选项会降低写入性能
$journal:默认为”{j: false},如果要求Primary写入持久化了才向客户端确认,则指定该选项为true
$wtimeout:写入超时时间,仅$w的值大于1时有效
当指定{w: }时,数据需要成功写入number个节点才算成功,如果写入过程中有节点故障,可能导致这个条件一直不能满足,从而一直不能向客户端发送确认结果,针对这种情况,客户端可设置wtimeout选项来指定超时时间,当写入过程持续超过该时间仍未结束,则认为写入失败。
参考资料:https://yq.aliyun.com/articles/54367
2、final public object MongoDB\Driver\WriteConcern::bsonSerialize ( void )
3、final public bool|null MongoDB\Driver\WriteConcern::getJournal ( void )
获取构造函数中的$joural的值,默认为false
4、final public string|int|null MongoDB\Driver\WriteConcern::getW ( void )
获取构造函数中的$w的值,默认为0
5、final public int MongoDB\Driver\WriteConcern::getWtimeout ( void )
获取构造函数中的$timeout中的值