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

Especifique campos para retornar

Nesta página

  • Visão geral
  • Dados de amostra
  • Tipos de projeção
  • Especifique campos a serem incluídos
  • Exclua o campo _id
  • Especifique campos a serem excluídos
  • Informações adicionais
  • Documentação da API

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 utilizam a coleção do restaurants no banco de dados de dados do sample_restaurants 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_restaurants->restaurants;

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

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:

  • MongoDB\Collection::findOne()

  • MongoDB\Collection::find()

Voltar

Retrieve Data