MongoDB\Driver\Server::executeCommand
(mongodb >=1.0.0)
MongoDB\Driver\Server::executeCommand — Выполнить команду базы данных на сервере
Описание
$db
, MongoDB\Driver\Command $command
, array $options
= array()
) : MongoDB\Driver\CursorВыполняет команду на сервере.
Этот метод не применяет особую логику к команде. Хотя этот метод
принимает "readConcern"
и
"writeConcern"
, которые будут включены в
документы коанды, эти опции не будут соответствовать значениям по умолчанию
из MongoDB
URI соединения , и не будет учитываться версия сервера MongoDB.
Поэтому пользователям рекомендуется использовать конкретные методы команды чтения и/или записи
если это возможно.
Замечание: Опция
"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.
Ошибки
- Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция
"session"
используется с соответствующей транзакцией в сочетании с опцией"readConcern"
или"writeConcern"
. - Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция
"session"
используется в сочетании с неподтвержденной гарантией записи. - При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
- При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
- При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
- Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException в случае возникновения других ошибкое (например, неверная команда, выдача команды записи на вторичное устройство).
Список изменений
Версия | Описание |
---|---|
PECL mongodb 1.4.4 |
Если опция "session" используется в сочетании с
неподтвержденной гарантией записи, выбрасывается исключение
MongoDB\Driver\Exception\InvalidArgumentException.
|
PECL mongodb 1.4.0 |
Третий параметр теперь представляет собой массив options .
Для обратной совместимости этот параметр все равно примет объект MongoDB\Driver\ReadPreference.
|
Примечания
Замечание: Ответственность вызывающего кода заключается в том, что сервер в состоянии выполнять операцию записи. Например, выполнение операции записи на вторичном узле (исключая "локальную" базу данных) завершится неудачей.
Смотрите также
- MongoDB\Driver\Command
- MongoDB\Driver\Cursor
- MongoDB\Driver\Server::executeReadCommand() - Выполняет команду базы данных, которая читает на сервере
- MongoDB\Driver\Server::executeReadWriteCommand() - Выполняет команду базы данных, которая читает и пишет на сервере
- MongoDB\Driver\Server::executeWriteCommand() - Выполняет команду базы данных, которая пишет на сервере
- MongoDB\Driver\Manager::executeCommand() - Выполняет команду базы данных