Создаёт новый объект WriteConcern

# MongoDB\Driver\WriteConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::__construct — Создаёт новый объект WriteConcern

### Описание

final public function MongoDB\Driver\WriteConcern::__construct(string|int `$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.

### Ошибки

- При ошибке парсинга аргумента метод выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException.
- Метод выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException, если значение параметра `w` недопустимо, или если значение времени ожидания `wtimeout` отрицательно или выходит за пределы 32-битного целого числа со знаком.

### Список изменений

Версия | Описание
--- | ---
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);

    ?>

### Смотрите также

- » Справочная информация об уровнях подтверждения записи

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open