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.
Menu Docs

Retrieve Data

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 usam a collection companies no banco de dados sample_training 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_training->companies;

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.

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;
{"_id":{"$oid":"..."},"name":"LinkedIn","permalink":"linkedin","crunchbase_url":
"http:\/\/www.crunchbase.com\/company\/linkedin","homepage_url":"http:\/\/linkedin.com",
... }

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 queries 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;
}
{"_id":{"$oid":"..."},"name":"Mitsubishi Motors","permalink":"mitsubishi-motors",
"crunchbase_url":"http:\/\/www.crunchbase.com\/company\/mitsubishi-motors",
... }
{"_id":{"$oid":"..."},"name":"Western Digital","permalink":"western-digital",
"crunchbase_url":"http:\/\/www.crunchbase.com\/company\/western-digital",
... }
{"_id":{"$oid":"..."},"name":"Celarayn","permalink":"celarayn","crunchbase_url":
"http:\/\/www.crunchbase.com\/company\/celarayn",
... }

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

O número máximo de documentos dentro de cada lote retornados em um resultado de query. Por padrão, o find comando tem um tamanho de lote inicial de 101 documentos e um tamanho máximo de 16 mebibytes (MiB) para cada lote subsequente. Esta opção pode impor um limite menor que 16 MiB, mas não maior. Se você definir batchSize para um limite que resulte em lotes maiores que 16 MiB, essa opção não terá efeito.
Tipo: integer

collation

O agrupamento a ser usado para a operação. O valor padrão é o agrupamento especificado para a coleção. Para saber mais, consulte a seção Agrupamento desta página.
Tipo: array|object

comment

O comentário a ser anexado à operação.
Tipo: qualquer tipo de BSON

cursorType

O tipo de cursor a ser usado para a operação. O valor padrão MongoDB\Operation\Find::NON_TAILABLE é.
Tipo: MongoDB\Operation\Find

limit

O número máximo de documentos que a operação pode retornar.
Tipo: integer

skip

O número de documentos a ignorar antes de retornar os resultados.
Tipo: integer

sort

A ordem em que a operação retorna documentos correspondentes.
Tipo: array|object

typeMap

O mapa de tipo a aplicar aos cursores, que determina como os documentos BSON são convertidos em valores PHP. O valor padrão é o mapa do tipo da coleção.
Tipo: 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 especificar um agrupamento para sua operação, passe um parâmetro de array $options que defina a opção collation para o método de operação. Atribua a opção collation a uma array que configure as regras de agrupamento.

A tabela a seguir descreve os campos que você pode definir para configurar o agrupamento:

Campo
Descrição

locale

(Obrigatório) Especifica a locale { components internacionais para Unicode} (ICU). Para obter uma lista de localidades suportadas, consulte Localidades de Agrupamento e Parâmetros Padrão no manual do MongoDB Server .

Tipo de dados: string

caseLevel

(Opcional) Especifica se incluir comparação de caso.

Quando definido true como, o comportamento de comparação depende do valor do strength campo :

- Se strength 1for, a biblioteca PHP compara
caracteres básicos e maiúsculas e minúsculas.

- strength Se 2 for, a biblioteca PHP compara
caracteres básicos, diacríticos, outras diferenças secundárias e maiúsculas e minúsculas.

- Se strength for qualquer outro valor, este campo será ignorado.

Quando definida false como, a biblioteca PHP não inclui a comparação de caso no nível 1 de força 2 ou.

Tipo de Dados: bool
Padrão: false

caseFirst

(Opcional) Especifica a ordem de classificação das diferenças de caso durante as comparações de nível terciário.

Tipo de dados: string
Padrão: "off"

strength

(Opcional) Especifica o nível de comparação a ser executado, conforme definido na documentação da ICU.

Tipo de dados: int
Padrão: 3

numericOrdering

(Opcional) Especifica se o driver compara strings numéricas como números.

Se definido true como, a biblioteca PHP compara strings numéricas como números. Por exemplo, ao comparar as strings "10" e "2", a biblioteca usa os valores numéricos das strings e trata "10" como maior que "2".

Se configurado false para, a biblioteca PHP compara strings numéricas como strings. Por exemplo, ao comparar as strings "10" e "2", a biblioteca compara um caractere de cada vez e trata "10" como menor que "2".

Para obter mais informações, consulte Restrições de agrupamento no manual do MongoDB Server .

Tipo de Dados: bool
Padrão: false

alternate

(Opcional) Especifica se a biblioteca considera o espaço em branco e a pontuação como caracteres básicos para fins de comparação.

Tipo de dados: string
Padrão: "non-ignorable"

maxVariable

(Opcional) Especifica quais caracteres a biblioteca considera ignoráveis quando o alternate campo é definido "shifted" como.

Tipo de dados: string
Padrão: "punct"

backwards

(Opcional) Especifica se as strings contendo diacríticos são classificadas da parte de trás da string para a frente.

Tipo de dados: bool
Padrão: false

Para saber mais sobre agrupamento e os possíveis valores para cada campo, consulte a entrada de Agrupamento no manual do MongoDB Server.

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

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