MongoDB\Driver\Server::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeCommandВыполняет команду базы данных на сервере

Описание

final public MongoDB\Driver\Server::executeCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Метод выполняет команду на сервере.

Этот метод не применяет специальной логики к команде. Значения по умолчанию для параметров readPreference, readConcern и writeConcern метод получит из активной транзакции, которую обозначает параметр session. Если активной транзакции нет, для выбора сервера будет использоваться основное предпочтение чтения.

Метод не получает значения по умолчанию из URI-идентификатора соединения. Поэтому пользователям рекомендуют по возможности использовать конкретные методы команд чтения и (или) записи.

Замечание: Опция "readPreference" не управляет сервером, на который драйвер отправляет операцию; опция выполняется только на этом объекте сервера. Вместо этого опцию указывают при выполнении операции на вторичном узле (из соединения с набором реплик, а не на автономном) или на узле mongos, чтобы гарантировать, что драйвер устанавливает правильный протокол передачи данных или добавляет предпочтение чтения к операции.

Список параметров

db (string)

Имя базы данных, в которой запускается команда.

command (MongoDB\Driver\Command)

Команда для выполнения.

options

options
Опция Тип Описание
readConcern MongoDB\Driver\ReadConcern

Гарантия чтения для применения к операции.

Эта опция доступна в MongoDB 3.2+ и приведёт к исключению во время выполнения, если указана для более старой версии сервера.

readPreference MongoDB\Driver\ReadPreference

Предпочтение чтения, используемая для выбора сервера для выполнения операции.

session MongoDB\Driver\Session

Сессия для связывания с операцией.

writeConcern MongoDB\Driver\WriteConcern

Гарантия записи для применения к операции.

Внимание

При использовании "session" и наличии незавершённых транзакций, вы не можете указать "readConcern" or "writeConcern" option. Это приведёт к выбрасыванию исключения MongoDB\Driver\Exception\InvalidArgumentException. Вместо этого вы должны установить эти две опции при создании транзакции с помощью MongoDB\Driver\Session::startTransaction().

Возвращаемые значения

Метод возвращает курсор MongoDB\Driver\Cursor, если выполнился успешно.

Ошибки

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

Версия Описание
PECL-модуль mongodb 1.21.0 Передача объекта MongoDB\Driver\ReadPreference как опции параметра options устарела, а с версии 2.0 передачу объекта запретят.
PECL-модуль mongodb 1.4.4 Метод выбросит исключение MongoDB\Driver\Exception\InvalidArgumentException, если опцию "session" указать вместе с неподтверждаемым уровнем записи.
PECL-модуль mongodb 1.4.0 Третий параметр options стал массивом опций, но в целях обратной совместимости пока ещё принимает объект MongoDB\Driver\ReadPreference.

Примечания

Замечание: Ответственность вызывающего кода заключается в том, что сервер в состоянии выполнять операцию записи. Например, выполнение операции записи на вторичном узле (исключая «локальную» базу данных) завершится неудачей.

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