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.

The examples in this guide use the restaurants collection in the sample_restaurants database from the Atlas sample datasets. To access this collection from your PHP application, instantiate a MongoDB\Client that connects to an Atlas cluster and assign the following value to your $collection variable:

$collection = $client->sample_restaurants->restaurants;

Para aprender a criar uma implantação gratuita do MongoDB e carregar os conjuntos de dados de amostra, consulte o guia Começar do 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: