MongoDB\Driver\Manager::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeQueryExecuta uma consulta ao banco de dados

Descrição

final public MongoDB\Driver\Manager::executeQuery(string $namespace, MongoDB\Driver\Query $query, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor

Seleciona um servidor de acordo com a opção "readPreference" e executa a consulta nesse servidor.

Os valores padrão para a opção "readPreference" e para a opção "readConcern" da consulta serão inferidos de uma transação ativa (indicada pela opção "session"), seguidos pelo URI de conexão.

Parâmetros

namespace (string)

Um namespace totalmente qualificado (por exemplo, "nomeDoBancoDados.nomeDaColecao").

query (MongoDB\Driver\Query)

A consulta a ser executada.

options

Opções
Opção Tipo Descrição
readPreference MongoDB\Driver\ReadPreference

Uma preferência de leitura a ser usada para selecionar um servidor para a operação.

session MongoDB\Driver\Session

Uma sessão para associar à operação.

Valor Retornado

Retorna MongoDB\Driver\Cursor em caso de sucesso.

Erros/Exceções

Registro de Alterações

Versão Descrição
PECL mongodb 1.4.0 O terceiro parâmetro agora é um array options. Para compatibilidade com versões anteriores, este parâmetro ainda aceitará um objeto MongoDB\Driver\ReadPreference.

Exemplos

Example #1 Exemplo de MongoDB\Driver\Manager::executeQuery()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$filter = ['x' => ['$gt' => 1]];
$options = [
    'projection' => ['_id' => 0],
    'sort' => ['x' => -1],
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);

foreach ($cursor as $document) {
    var_dump($document);
}

?>

O exemplo acima produzirá:

object(stdClass)#6 (1) {
  ["x"]=>
  int(3)
}
object(stdClass)#7 (1) {
  ["x"]=>
  int(2)
}

Example #2 Limitando o tempo de execução de uma consulta

A opção "maxTimeMS" da classeMongoDB\Driver\Query pode ser usada para limitar o tempo de execução de uma consulta. Observe que esse limite de tempo é aplicado no lado do servidor e não leva em consideração a latência da rede. Consulte » Encerrar Operações em Execução no manual do MongoDB para obter mais informações.

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');

$filter = ['x' => ['$gt' => 1]];
$options = [
    'maxTimeMS' => 1000,
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);

foreach ($cursor as $document) {
    var_dump($document);
}

?>

Se a consulta não for concluída após um segundo de tempo de execução no servidor, uma MongoDB\Driver\Exception\ExecutionTimeoutException será lançada.

Veja Também