Menu Docs
Página inicial do Docs
/ / /
Manual da Biblioteca PHP
/

Retrieve Data

Nesta página

  • Visão geral
  • Dados de amostra
  • Encontrar documentos
  • Encontrar um documento
  • Localizar vários documentos
  • Modificar comportamento de localização
  • Informações adicionais
  • Documentação da API

Neste guia, você pode aprender como usar a Biblioteca MongoDB PHP para recuperar dados de uma coleção MongoDB usando operações de leitura. Você pode chamar o método MongoDB\Collection::find() ou MongoDB\Collection::findOne() em uma coleção para recuperar documentos que correspondam a um conjunto de critérios.

Os exemplos neste guia utilizam a coleção do companies no banco de dados de dados do sample_training a partir dos conjuntos de dados de amostra do Atlas. Para acessar essa coleção a partir do seu aplicação PHP , instancie um MongoDB\Client que se conecte a um Atlas cluster e atribua o seguinte valor à sua variável $collection :

$collection = $client->sample_training->companies;

Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Iniciar com Atlas .

A biblioteca PHP do MongoDB inclui dois métodos para recuperar documentos de uma collection: MongoDB\Collection::findOne() e MongoDB\Collection::find(). Esses métodos usam um filtro de query e retornam um ou mais documentos correspondentes. Um filtro de query especifica os critérios de pesquisa que o driver usa para recuperar documentos em sua query.

Dica

Para saber mais sobre filtros de query, consulte o guia Especificar uma query .

Para localizar um único documento em uma coleção, chame o método MongoDB\Collection::findOne() e passe um filtro de query que especifique os critérios do documento que você deseja localizar.

O método findOne() retorna um valor array, object ou null . Se o filtro de query corresponder a um documento, o método retornará uma instância array|object contendo o documento. O tipo de retorno depende do valor da opção typeMap . Se o filtro de query não corresponder a nenhum documento, o método retornará null.

Dica

Para saber mais sobre as opções findOne() , como typeMap, consulte a seção Modificar comportamento de localização deste guia.

Se o filtro de query corresponder a mais de um documento, o método findOne() retornará o primeiro documento correspondente dos resultados recuperados.

O exemplo a seguir usa o método findOne() para localizar o primeiro documento no qual o campo name tem o valor 'LinkedIn':

$document = $collection->findOne(['name' => 'LinkedIn']);
echo json_encode($document), PHP_EOL;

Dica

Ordem de classificação

O método findOne() retorna o primeiro documento em ordem natural no disco se nenhum critério de classificação for especificado.

Para encontrar vários documentos em uma coleção, passe um filtro de query para o método MongoDB\Collection::find() que especifica os critérios dos documentos que você deseja recuperar.

O exemplo a seguir usa o método find() para localizar todos os documentos nos quais o campo founded_year tem o valor 1970:

$results = $collection->find(['founded_year' => 1970]);

O método find() retorna uma instância de MongoDB\Driver\Cursor, que você pode iterar para ver os documentos correspondentes. Um cursor é um mecanismo que permite que um aplicação itere sobre os resultados do banco de dados de dados enquanto mantém apenas um subconjunto deles na memória em determinado momento. Os cursores são úteis quando o método find() retorna uma grande quantidade de documentos.

Você pode iterar sobre os documentos em um cursor usando um loop foreach , como mostrado no exemplo a seguir:

foreach ($results as $doc) {
echo json_encode($doc), PHP_EOL;
}

Observação

Localizar todos os documentos

Para encontrar todos os documentos em uma coleção, passe um filtro vazio para o método find() :

$cursor = $collection->find([]);

Você pode modificar o comportamento dos métodos MongoDB\Collection::find() e MongoDB\Collection::findOne() passando uma array que especifique valores de opção como um parâmetro. A tabela a seguir descreve algumas opções que você pode definir na array:

Opção
Descrição
batchSize
The number of documents to return per batch. The default value is 101.
Type: integer
collation
The collation to use for the operation. The default value is the collation specified for the collection.
Type: array|object
comment
The comment to attach to the operation.
Type: any BSON type
cursorType
The type of cursor to use for the operation. The default value is MongoDB\Operation\Find::NON_TAILABLE.
Type: MongoDB\Operation\Find
limit
The maximum number of documents the operation can return.
Type: integer
skip
The number of documents to skip before returning results.
Type: integer
sort
The order in which the operation returns matching documents.
Type: array|object
typeMap
The type map to apply to cursors, which determines how BSON documents are converted to PHP values. The default value is the collection's type map.
Type: array

O exemplo a seguir usa o método find() para localizar todos os documentos nos quais o campo number_of_employees tem o valor 1000. O exemplo utiliza a opção limit para retornar um máximo de 5 resultados:

$results = $collection->find(
['number_of_employees' => 1000],
['limit' => 5]
);
foreach ($results as $doc) {
echo json_encode($doc), PHP_EOL;
}

Para obter uma lista completa de opções, consulte a documentação da API para os parâmetros findOne() e find() .

Para saber mais sobre filtros de query, consulte o guia Especificar uma query .

Para visualizar exemplos de código de recuperação de documentos com a biblioteca PHP do MongoDB , consulte Ler dados do MongoDB.

Para saber mais sobre qualquer um dos métodos discutidos nesta guia, consulte a seguinte documentação da API:

Voltar

Ler dados do MongoDB