MongoDB\Driver\Manager::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeCommand — Виконує команду бази даних

Опис

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

Вибирає сервер відповідно до опції "readPreference" та виконує команду на цьому сервері. За промовчанням буде вибрано основний сервер.

Цей метод не застосовує особливої ​​логіки до команди. Хоча цей метод приймає "readConcern"и"writeConcern", які будуть включені в документи коанди, ці опції не будуть відповідати значенням за замовчуванням MongoDB URI з'єднання , і не враховуватиметься версія сервера MongoDB. Тому користувачам рекомендується використовувати конкретні методи команди читання та/або запису, якщо це можливо.

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

db(string)

Ім'я бази даних, у якій запускається команда.

command MongoDB\Driver\Command) .

Команда для виконання.

options

options

ОпцияТипОпис
readConcernMongoDB\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.4.4Якщо опція "session" використовується у поєднанні з непідтвердженою гарантією запису, викидається виняток MongoDB\Driver\Exception\InvalidArgumentException
PECL mongodb 1.4.0Третій параметр тепер є масивом options. . Для зворотної сумісності цей параметр все одно прийме об'єкт MongoDB\Driver\ReadPreference

Приклади

Приклад #1 Приклад використання MongoDB\Driver\Manager::executeCommand()** з командою, що повертає одиночний документ**

Loading...

Результат виконання наведеного прикладу:

array(1) {
  ["ok"]=>
  float(1)
}

Приклад #2 Приклад використання MongoDB\Driver\Manager::executeCommand()** з командою, що повертає курсор**

Loading...

Результат виконання наведеного прикладу:

object(stdClass)#6 (2) {
  ["_id"]=>
  string(3) "bar"
  ["sum"]=>
  int(10)
}
object(stdClass)#7 (2) {
  ["_id"]=>
  string(3) "foo"
  ["sum"]=>
  int(2)
}

Приклад #3 Обмеження часу виконання запиту

Опция"maxTimeMS"классаMongoDB\Driver\Query може використовуватись для обмеження часу виконання запиту. Зауважте, що цей термін застосовується на стороні сервера і не враховує затримки мережі. Дивіться » Завершення виконання операцій у посібнику MongoDB для отримання додаткової інформації.

Loading...

Якщо запит не завершиться через секунду після початку виконання на сервері, буде викинуто виняток MongoDB\Driver\Exception\ExecutionTimeoutException

Примітки

Зауваження: Якщо буде використаний вторинний сервер із опції readPreference, то код, що викликає, бере на себе відповідальність за гарантію виконання команди command на вторинному вузлі. Драйвер не перевірить.

Зауваження: Цей метод - не метод за замовчуванням, щоб отримати переваги читання з URI-адреси підключення MongoDB. Програми, яким потрібна ця поведінка, можуть викликати метод MongoDB\Driver\Manager::executeReadCommand()

Дивіться також