MongoDB\Driver\Manager::executeCommand() e
MongoDB\Driver\Manager::executeQuery() ambos retornam
seus resultados como um objeto MongoDB\Driver\Cursor.
Este objeto pode ser usado para iterar sobre conjunto de resultados do comando
ou consulta.
Como MongoDB\Driver\Cursor implementa a
interface Traversable, pode-se simplesmente
iterar pelo conjunto de resultados com
foreach
.
<?php
$manager = new MongoDB\Driver\Manager();
/* Insere alguns documentos para que a consulta retorne informação */
$bulkWrite = new MongoDB\Driver\BulkWrite;
$bulkWrite->insert(['name' => 'Ceres', 'size' => 946, 'distance' => 2.766]);
$bulkWrite->insert(['name' => 'Vesta', 'size' => 525, 'distance' => 2.362]);
$manager->executeBulkWrite("test.asteroids", $bulkWrite);
/* Consulta todos os itens na coleção */
$query = new MongoDB\Driver\Query( [] );
/* Consulta a coleção "asteroids" do banco de dados "test" */
$cursor = $manager->executeQuery("test.asteroids", $query);
/* $cursor agora contém um objeto que envolve o conjunto de resultados. Pode-se
* usar foreach() para iterar por todo o resultado */
foreach($cursor as $document) {
print_r($document);
}
?>
O exemplo acima produzirá
algo semelhante a:
stdClass Object
(
[_id] => MongoDB\BSON\ObjectId Object
(
[oid] => 5a4cff2f122d3321565d8cc2
)
[name] => Ceres
[size] => 946
[distance] => 2.766
)
stdClass Object
(
[_id] => MongoDB\BSON\ObjectId Object
(
[oid] => 5a4cff2f122d3321565d8cc3
)
[name] => Vesta
[size] => 525
[distance] => 2.362
}