Ler dados do MongoDB
Nesta página
Visão geral
Nesta página, você pode ver exemplos de código copiáveis que mostram métodos comuns da biblioteca PHP para recuperar documentos.
Dica
Para saber mais sobre qualquer um dos métodos mostrados nesta página, consulte o link fornecido em cada seção.
Para usar um exemplo desta página, copie o exemplo de código noaplicação de amostra ou em seu próprio aplicação. Certifique-se de definir a variável de ambiente MONGODB_URI
para a string de conexão para sua implantação do MongoDB e substitua os espaços reservados <database>
e <collection>
por valores para seu espaço de namespace de destino.
Aplicativo de amostra
Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:
Verifique se a biblioteca PHP do MongoDB está instalada em seu projeto. Para saber mais sobre como instalar a biblioteca PHP do MongoDB , consulte o guia de download e instalação .
Copie o seguinte código e cole-o em um novo arquivo
.php
.Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.
1 2 3 require __DIR__ . '/../vendor/autoload.php'; 4 5 $uri = getenv('MONGODB_URI') ?: throw new RuntimeException('Set the MONGODB_URI variable to your Atlas URI that connects to the sample dataset'); 6 $client = new MongoDB\Client($uri); 7 8 $collection = $client->selectCollection('<database>', '<collection>'); 9 10 // Start example code here 11 12 // End example code here
encontrar um
O seguinte código mostra como recuperar um único documento de uma coleção que corresponda aos critérios especificados:
$document = $collection->findOne(['year' => 1994]); echo json_encode($document), PHP_EOL;
Para saber mais sobre o método findOne()
, consulte a seção Encontrar um documento no guia Recuperar dados.
Encontrar vários
O código a seguir mostra como recuperar todos os documentos de uma coleção que correspondam aos critérios especificados:
$resultsMultiple = $collection->find(['year' => 1970]); foreach ($resultsMultiple as $doc) { echo json_encode($doc), PHP_EOL; }
Para saber mais sobre o método find()
, consulte a seção Encontrar vários documentos no guia Recuperar dados.
Contagem de documentos em uma coleção
O seguinte código mostra como contar o número de documentos em uma coleção:
$result = $collection->countDocuments([]); echo 'Number of documents: ', $result;
Para saber mais sobre o método countDocuments()
, consulte a seção Contagem de todos os documentos no guia Contagem de documentos.
Contagem de documentos retornados de uma query
O seguinte código mostra como contar documentos em uma coleção que correspondam aos critérios especificados:
$result = $collection->countDocuments(['year' => 2010]); echo 'Number of companies founded in 2010: ', $result;
Para saber mais sobre o método countDocuments()
, consulte a seção Contagem de documentos específicos no guia de Contagem de documentos.
Contagem estimada de documentos
O código a seguir mostra como recuperar uma contagem estimada do número de documentos em uma coleção:
$result = $collection->estimatedDocumentCount(); echo 'Estimated number of documents: ', $result;
Para saber mais sobre o método estimatedDocumentCount()
, consulte a seção Recuperar uma contagem estimada no guia Contagem de documentos.
Retrieve Distinct Values
O seguinte código mostra como recuperar os valores exclusivos de um campo para documentos que correspondem aos critérios especificados:
$results = $collection->distinct('year'); foreach ($results as $value) { echo json_encode($value), PHP_EOL; }
Para saber mais sobre o método distinct()
, consulte o guia Retrieve Distinct Field Values (Recuperar valores de campos distintos).
Monitorar alterações de dados
O seguinte código mostra como monitorar e imprimir alterações em uma coleção:
$changeStream = $collection->watch(); for ($changeStream->rewind(); true; $changeStream->next()) { if ( ! $changeStream->valid()) { continue; } $event = $changeStream->current(); echo toJSON($event), PHP_EOL; if ($event['operationType'] === 'invalidate') { break; } }
Para saber mais sobre o método watch()
, consulte o guia Monitorar alterações de dados .