Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

Especifique documentos a serem devolvidos

Neste guia, você pode aprender como especificar quais documentos e quais tipos retornar de uma operação de leitura passando as seguintes opções para o método MongoDB\Collection::find() ou MongoDB\Collection::findOne() :

  • limite: especifica o número máximo de documentos para retornar de uma consulta

  • classificar: especifica a ordem de classificação para os documentos devolvidos

  • skip: especifica o número de documentos a ignorar antes de retornar os resultados da query

  • typeMap: Converte os documentos retornados para um tipo de dados especificado

Os exemplos neste guia usam a collection restaurants no banco de dados sample_restaurants dos conjuntos de banco 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_restaurants->restaurants;

Para aprender como criar uma implantação gratuita do MongoDB e carregar os conjuntos de dados de amostra, consulte o Guia de introdução do MongoDB.

Para especificar o número máximo de documentos retornados de uma operação de leitura, crie uma array que defina a opção limit e passe a array como parâmetro para o método MongoDB\Collection::find() .

O exemplo a seguir encontra todos os restaurantes que têm um cuisine valor de campo de 'Italian' e limita os resultados a 5 documentos:

$cursor = $collection->find( ['cuisine' => 'Italian'], ['limit' => 5],); foreach ($cursor as $doc) { echo json_encode($doc), PHP_EOL;}

Dica

O exemplo anterior retorna os cinco primeiros documentos correspondidos pela query de acordo com sua ordem natural no banco de banco de dados. A seção a seguir descreve como devolver os documentos em uma ordem especificada.

Para retornar documentos em uma ordem especificada, crie uma array que defina a opção sort . Ao definir esta opção, inclua o campo para classificar os resultados e a direção de classificação. Um valor de 1 classifica os valores do mais baixo para o mais alto, e um valor de -1 os classifica do mais alto para o mais baixo. Em seguida, passe a array como um parâmetro para o método MongoDB\Collection::find() ou MongoDB\Collection::findOne() .

O exemplo a seguir retorna todos os documentos que têm 'Italian' cuisine de , classificados em ordem crescente de name campo :

$cursor = $collection->find( ['cuisine' => 'Italian'], ['sort' => ['name' => 1]],); foreach ($cursor as $doc) { echo json_encode($doc), PHP_EOL;}

Para ignorar um número especificado de documentos antes de retornar os resultados da query, crie uma array que defina a opção skip e passe a array como um parâmetro para o método MongoDB\Collection::find() ou MongoDB\Collection::findOne() .

O exemplo a seguir retorna todos os documentos que têm um valor de campo borough de 'Manhattan' e ignora os primeiros 10 documentos:

$cursor = $collection->find( ['borough' => 'Manhattan'], ['skip' => 10],); foreach ($cursor as $doc) { echo json_encode($doc), PHP_EOL;}

Você pode definir as opções limit, sort e skip em uma única array de opções e passar a array como parâmetro para a operação de leitura. Isso permite que você defina um número máximo de documentos classificados para retornar, ignorando um número específico de documentos antes de retornar.

O exemplo a seguir retorna 5 documentos com um valor cuisine de 'Italian'. Os resultados são classificados em ordem crescente por valor de campo name , ignorando os primeiros 10 documentos:

$options = [ 'sort' => ['name' => 1], 'limit' => 5, 'skip' => 10,]; $cursor = $collection->find(['cuisine' => 'Italian'], $options);foreach ($cursor as $doc) { echo json_encode($doc), PHP_EOL;}

Observação

A ordem em que você chama esses métodos não altera os documentos que são devolvidos. A Biblioteca PHP do MongoDB reordena automaticamente as chamadas para executar primeiro a operação de classificação, a operação de ignorar em seguida e, em seguida, a operação de limite.

Para personalizar o tipo de dados de documentos retornados por uma operação de leitura, você pode passar a opção typeMap em um parâmetro de array.

Por padrão, os métodos chamados em uma instância MongoDB\Client, MongoDB\Database ou MongoDB\Collection utilizam o seguinte mapa de tipo:

[ 'array' => 'MongoDB\Model\BSONArray', 'document' => 'MongoDB\Model\BSONDocument', 'root' => 'MongoDB\Model\BSONDocument',]

Este mapa de tipo padrão executa as seguintes conversões:

  • Arrays para MongoDB\Model\BSONArray objetos

  • Documentos BSON incorporados e de nível superior em objetos MongoDB\Model\BSONDocument

Em um mapa de tipo personalizado, você pode especificar conversões para qualquer tipo que implemente MongoDB\BSON\Unserializable, bem como os tipos array, stdClass e object .

O exemplo a seguir retorna todos os documentos que têm um valor de e especifica a opção cuisine typeMap 'Hawaiian' converter os documentos em valores de array:

$options = [ 'typeMap' => [ 'root' => 'array', 'document' => 'array', ],]; $cursor = $collection->find(['cuisine' => 'Hawaiian'], $options);foreach ($cursor as $doc) { print_r($doc) . PHP_EOL;}

Para obter mais informações sobre a recuperação de documentos, consulte o guia Recuperar dados .

Para obter mais informações sobre como especificar uma query, consulte o guia Especificar uma query .

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