MongoDB\Driver\Command::__construct
(mongodb >=1.0.0)
MongoDB\Driver\Command::__construct — Создает новый объект Command
Описание
$document
, array $commandOptions
= ?
)Создает новый объект класса MongoDB\Driver\Command, который является неизменяемым значением, представляющим команду базы данных. Эту команду впоследствии можно запустить с помощью MongoDB\Driver\Manager::executeCommand().
Полный документ команды, включающий ее имя и прочие опции,, должен
быть задан в параметре document
.
Параметр commandOptions
используется только
для определения опций запуска команды и результирующий
MongoDB\Driver\Cursor.
Список параметров
-
document
-
Полный документ команды, который будет передан серверу.
-
commandOptions
-
Замечание: Не используйте этот параметр для указания опций, описанных в руководстве по командам MongoDB. Этот параметр можно использовать только для опций перечисленных ниже.
commandOptions Опция Тип Описание maxAwaitTimeMS int Положительное целое число, определяющие ограничение времени в миллисекундах, на которое сервер может блокировать операцию getMore, если данные отсутствуют. Эта опция может использоваться только совместно с командами, возвращающими хвостовые (tailable) курсоры. (например » Change Streams).
Ошибки
- При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
Список изменений
Версия | Описание |
---|---|
PECL mongodb 1.4.0 |
Добавлен второй аргумент |
Примеры
Пример #1 Пример использования MongoDB\Driver\Command::__construct()
<?php
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$command = new MongoDB\Driver\Command(array("buildinfo" => 1));
try {
$cursor = $manager->executeCommand("admin", $command);
$response = $cursor->toArray()[0];
} catch(MongoDB\Driver\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}
var_dump($response);
?>
Результатом выполнения данного примера будет что-то подобное:
array(13) { ["version"]=> string(14) "2.8.0-rc2-pre-" ["gitVersion"]=> string(62) "b743d7158f7642f4da6b7eac8320374b3b88dc2e modules: subscription" ["OpenSSLVersion"]=> string(25) "OpenSSL 1.0.1f 6 Jan 2014" ["sysInfo"]=> string(104) "Linux infant 3.16.0-24-generic #32-Ubuntu SMP Tue Oct 28 13:07:32 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49" ["loaderFlags"]=> string(91) "-fPIC -pthread -Wl,-z,now -rdynamic -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,-E" ["compilerFlags"]=> string(301) "-Wnon-virtual-dtor -Woverloaded-virtual -std=c++11 -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -pipe -Werror -O3 -Wno-unused-local-typedefs -Wno-unused-function -Wno-deprecated-declarations -Wno-unused-but-set-variable -fno-builtin-memcmp -std=c99" ["allocator"]=> string(8) "tcmalloc" ["versionArray"]=> array(4) { [0]=> int(2) [1]=> int(8) [2]=> int(0) [3]=> int(-8) } ["javascriptEngine"]=> string(2) "V8" ["bits"]=> int(64) ["debug"]=> bool(false) ["maxBsonObjectSize"]=> int(16777216) ["ok"]=> float(1) }
Пример #2 Пример использования MongoDB\Driver\Command::__construct()
Команды также могут принимать опции, как часть нормальной структуры, которую вы
создаете и отправляете на сервер. К примеру, с большинством команд можно
передавать опцию maxTimeMS
для ограничения времени их выполнения.
<?php
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$command = new MongoDB\Driver\Command(
array(
"distinct" => "beer",
"key" => "beer_name",
"maxTimeMS" => 10,
)
);
try {
$cursor = $manager->executeCommand("beerdb", $command);
$response = $cursor->toArray()[0];
} catch(MongoDB\Driver\Exception\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}
var_dump($response);
?>
Результатом выполнения данного примера будет что-то подобное:
operation exceeded time limit
Смотрите также
- MongoDB\Driver\Manager::executeCommand() - Выполняет команду базы данных
- MongoDB\Driver\Cursor