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

Especifique campos para retornar

Neste guia, você pode aprender como usar a Biblioteca MongoDB PHP para especificar quais campos devem ser retornados de uma operação de leitura usando uma projeção}. Uma projeção é um documento que especifica quais campos o MongoDB retorna de uma query.

Os exemplos neste guia usam a collection restaurants no banco de dados sample_restaurants dos conjuntos de dados de amostra do Atlas. Para acessar essa collection 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 saber como criar um sistema gratuito do MongoDB e carregar os conjuntos de dados de exemplo, consulte o guia de introdução ao MongoDB .

Você pode usar uma projeção para especificar quais campos incluir em um documento de devolução ou para especificar quais campos excluir. Você não pode combinar declarações de inclusão e exclusão em uma única projeção, a menos que esteja excluindo o campo _id .

Para especificar os campos a serem incluídos no resultado, passe uma array de opções para o método MongoDB\Collection::findOne() ou MongoDB\Collection::find() que define a opção projection . Use a seguinte sintaxe para definir esta opção:

$options = [
'projection' => [
'<field name>' => 1,
],
];

O exemplo a seguir cria uma array de opções e define a opção projection para retornar somente os campos name, cuisine e borough dos documentos correspondentes. Em seguida, ele chama o método find() para encontrar todos os restaurantes nos quais o valor do campo name é 'Emerald Pub', passando a array de opções como parâmetro para find():

$options = [
'projection' => [
'name' => 1,
'cuisine' => 1,
'borough' => 1,
],
];
$cursor = $collection->find(['name' => 'Emerald Pub'], $options);
foreach ($cursor as $doc) {
echo json_encode($doc), PHP_EOL;
}

Quando você usa uma projeção para especificar campos a serem incluídos no documento de retorno, o campo _id também é incluído por padrão. Todos os outros campos estão implicitamente excluídos. Para remover o campo _id do documento de retorno, você deve excluí-lo explicitamente.

Ao especificar campos a serem incluídos, você também pode excluir o campo _id do documento retornado.

O exemplo a seguir executa a mesma query do exemplo anterior, mas exclui o campo _id da projeção:

$options = [
'projection' => [
'_id' => 0,
'name' => 1,
'cuisine' => 1,
'borough' => 1,
],
];
$cursor = $collection->find(['name' => 'Emerald Pub'], $options);
foreach ($cursor as $doc) {
echo json_encode($doc), PHP_EOL;
}

Para especificar os campos a serem excluídos do resultado, passe uma array de opções para o método MongoDB\Collection::findOne() ou MongoDB\Collection::find() que define a opção projection . Use a seguinte sintaxe para definir esta opção:

$options = [
'projection' => [
'<field name>' => 0,
],
];

O exemplo a seguir cria uma array de opções e define a opção projection para excluir os campos grades e address dos documentos correspondentes. Em seguida, ele chama o método find() para encontrar todos os restaurantes nos quais o valor do campo name é 'Emerald Pub', passando a array de opções como parâmetro para find():

$options = [
'projection' => [
'grades' => 0,
'address' => 0,
],
];
$cursor = $collection->find(['name' => 'Emerald Pub'], $options);
foreach ($cursor as $doc) {
echo json_encode($doc), PHP_EOL;
}

Quando você usa uma projeção para especificar quais campos excluir, quaisquer campos não especificados são implicitamente incluídos no documento de retorno.

Para saber mais sobre projeções, consulte o guia Campos de projeto no manual do MongoDB Server .

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