Dutch PHP Conference 2025 - Call For Papers

MongoDB\Driver\WriteConcern::__construct

(mongodb >=1.0.0)

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

Описание

final public 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);

?>
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top