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|MongoDB\Driver\ReadPreference|null $options = null): 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() - Виконує команду бази даних