MongoDB\Driver\Command::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Command::__constructСоздает новый объект Command

Описание

final public MongoDB\Driver\Command::__construct ( array|object $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).

Ошибки

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

Версия Описание
PECL mongodb 1.4.0

Добавлен второй аргумент commandOptions, позволяющий определить опцию "maxAwaitTimeMS".

Примеры

Пример #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

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