Menu Docs
Página inicial do Docs
/ / /
C#/.NET
/ / /

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 especificar quais campos retornar 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 sample_restaurants.restaurants dos conjuntos de dados de amostra do Atlas. Para aprender como criar um agrupamento de MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte oInício Rápidodo .

Você pode usar uma projeção para especificar quais campos incluir em um documento de devolução ou para especificar quais campos excluir.

Ao especificar determinados campos para incluir em uma projeção, todos os outros campos são implicitamente excluídos (exceto o campo _id , que é incluído por padrão). Não é possível combinar declarações de inclusão e exclusão em uma única projeção, a menos que você esteja excluindo o campo _id .

Para remover o campo _id do documento retornado, você deve excluí-lo explicitamente.

Para especificar os campos a serem incluídos no resultado, encadeie o método Project() ao método Find(). Ao chamar o método Project(), você deve passar a definição de projeção como um parâmetro. Você pode construir uma definição de projeção utilizando o método Builders<T>.Projection.Include() e passando o nome do campo para incluir como um parâmetro. Este método pode ser encadeado para incluir múltiplos campos na projeção.

O exemplo a seguir usa o método Find() para encontrar todos os restaurantes nos quais o valor do campo name é "Emerald Pub". Em seguida, o código chama o método Project() para instruir a operação de busca a incluir os campos name e cuisine no resultado:

var filter = Builders<BsonDocument>.Filter.Eq("name", "Emerald Pub");
var projection = Builders<BsonDocument>.Projection
.Include("name")
.Include("cuisine");
var results = collection.Find(filter).Project(projection).ToList();
foreach (var result in results)
{
Console.WriteLine(result.ToJson());
}
{ "_id" : ObjectId("..."), "cuisine" : "American", "name" : "Emerald Pub" }
{ "_id" : ObjectId("..."), "cuisine" : "American", "name" : "Emerald Pub" }

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

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

var filter = Builders<BsonDocument>.Filter.Eq("name", "Emerald Pub");
var projection = Builders<BsonDocument>.Projection
.Include("name")
.Include("cuisine")
.Exclude("_id");
var results = collection.Find(filter).Project(projection).ToList();
foreach (var result in results)
{
Console.WriteLine(result.ToJson());
}
{ "cuisine" : "American", "name" : "Emerald Pub" }
{ "cuisine" : "American", "name" : "Emerald Pub" }

Para especificar os campos a serem excluídos do resultado, encadeie o método Project() ao método Find(). Você pode excluir campos em sua projeção usando o método Builders<T>.Projection.Exclude() e passando o nome do campo a ser excluído como um parâmetro. Este método pode ser encadeado para excluir múltiplos campos na projeção.

O exemplo a seguir usa o método Find() para encontrar todos os restaurantes nos quais o valor do campo name é "Emerald Pub". Em seguida, ele usa uma projeção para excluir o campo cuisine dos documentos retornados:

var filter = Builders<BsonDocument>.Filter.Eq("name", "Emerald Pub");
var projection = Builders<BsonDocument>.Projection
.Exclude("cuisine");
var results = collection.Find(filter).Project(projection).ToList();
foreach (var result in results)
{
Console.WriteLine(result.ToJson());
}
{ "_id" : ObjectId("..."), "address" : { "building" : "308", "coord" : [-74.008493599999994, 40.725807199999998], "street" : "Spring Street", "zipcode" : "10013" }, "borough" : "Manhattan", "grades" : [{ "date" : ISODate("2014-02-24T00:00:00Z"), "grade" : "A", "score" : 5 }, { "date" : ISODate("2013-08-26T00:00:00Z"), "grade" : "A", "score" : 13 }, { "date" : ISODate("2013-03-04T00:00:00Z"), "grade" : "A", "score" : 12 }, { "date" : ISODate("2012-06-25T00:00:00Z"), "grade" : "A", "score" : 10 }, { "date" : ISODate("2011-12-23T00:00:00Z"), "grade" : "A", "score" : 10 }, { "date" : ISODate("2011-07-26T00:00:00Z"), "grade" : "C", "score" : 32 }], "name" : "Emerald Pub", "restaurant_id" : "40367329" }
{ "_id" : ObjectId("..."), "address" : { "building" : "18301", "coord" : [-73.791184999999999, 40.740119999999997], "street" : "Horace Harding Expressway", "zipcode" : "11365" }, "borough" : "Queens", "grades" : [{ "date" : ISODate("2014-05-07T00:00:00Z"), "grade" : "A", "score" : 12 }, { "date" : ISODate("2013-04-30T00:00:00Z"), "grade" : "A", "score" : 9 }, { "date" : ISODate("2012-03-01T00:00:00Z"), "grade" : "A", "score" : 13 }], "name" : "Emerald Pub", "restaurant_id" : "40668598" }

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

Para saber mais sobre qualquer uma das funções ou tipos discutidos neste guia, consulte a seguinte documentação da API:

Voltar

Retrieve Data