Menu Docs

Página inicial do DocsGo

Especifique quais campos retornar

Nesta página

  • Visão geral
  • Dados de amostra
  • Projeção
  • Excluir um campo
  • Incluir um campo
  • Agregação
  • Informações adicionais
  • Documentação da API

Neste guia, você aprenderá a especificar quais campos retornar em um documento de operações de leitura.

Para executar os exemplos neste guia, carregue estes documentos na collection tea.ratings com o seguinte trecho:

coll := client.Database("tea").Collection("ratings")
docs := []interface{}{
bson.D{{"type", "Masala"}, {"rating", 10}},
bson.D{{"type", "Assam"}, {"rating", 5}},
bson.D{{"type", "Oolong"}, {"rating", 7}},
bson.D{{"type", "Earl Grey"}, {"rating", 8}},
bson.D{{"type", "English Breakfast"}, {"rating", 5}},
}
result, err := coll.InsertMany(context.TODO(), docs)
if err != nil {
panic(err)
}
fmt.Printf("Number of documents inserted: %d\n", len(result.InsertedIDs))

Dica

Bancos de Dados e Coleções Inexistentes

Se o banco de dados e a collection necessários não existirem quando você executar uma operação de escrita, o servidor implicitamente os criará.

Cada documento contém uma classificação para um tipo de chá que corresponde aos campos type e rating .

Observação

Cada exemplo trunca o valor ObjectID porque o driver o gera exclusivamente.

Uma projeção especifica quais campos retornar em documentos correspondentes. Ele contém nomes de campo seguidos por um 1 (para incluir) ou 0 (para excluir). As projeções só podem incluir ou excluir campos.

Você pode especificar uma projeção passando um para o método SetProjection() nas opções dos seguintes métodos de operação de leitura:

  • Find()

  • FindOne()

  • FindOneAndDelete()

  • FindOneAndReplace()

  • FindOneAndUpdate()

Dica

Se você não especificar uma projeção, a operação de leitura retornará todos os campos em documentos correspondentes.

Para excluir um campo, passe o campo que você deseja excluir e um 0 para o método SetProjection() . Para todos os campos que você não lista explicitamente na projeção, o driver os inclui.

O exemplo seguinte exclui o rating dos documentos correspondentes do método Find() :

opts := options.Find().SetProjection(bson.D{{"rating", 0}})
cursor, err := coll.Find(context.TODO(), bson.D{}, opts)
if err != nil {
panic(err)
}
var results []bson.D
if err = cursor.All(context.TODO(), &results); err != nil {
panic(err)
}
for _, result := range results {
fmt.Println(result)
}

Para incluir um campo, passe o campo que você deseja incluir e um 1 para o método SetProjection() . Para todos os campos que você não lista explicitamente na projeção, o driver os exclui.

Importante

Você pode excluir o campo _id mesmo se tiver especificado para incluir determinados campos. Por padrão, o driver inclui o campo _id . Você deve excluir explicitamente o campo _id se não desejar que ele seja gerado.

O exemplo a seguir executa a seguinte projeção nos documentos correspondentes a partir do método Find() :

  • Inclua o campo type e rating

  • Exclua o campo _id

opts := options.Find().SetProjection(bson.D{{"type", 1}, {"rating", 1}, {"_id", 0}})
cursor, err := coll.Find(context.TODO(), bson.D{}, opts)
if err != nil {
panic(err)
}
var results []bson.D
if err = cursor.All(context.TODO(), &results); err != nil {
panic(err)
}
for _, result := range results {
fmt.Println(result)
}

Você também pode incluir o estágio do projeto $ para especificar uma projeção em um agregação pipeline.

O exemplo a seguir executa a seguinte projeção nos documentos correspondentes a partir do método Aggregate() :

  • Inclua o campo type e rating

  • Exclua o campo _id

projectStage := bson.D{{"$project", bson.D{{"type", 1}, {"rating", 1}, {"_id", 0}}}}
cursor, err := coll.Aggregate(context.TODO(), mongo.Pipeline{projectStage})
if err != nil {
panic(err)
}
var results []bson.D
if err = cursor.All(context.TODO(), &results); err != nil {
panic(err)
}
for _, result := range results {
fmt.Println(result)
}

Para saber mais sobre as operações mencionadas, consulte os seguintes guias:

Para saber mais sobre como projetar pontuações de texto a partir de sua pesquisa de texto, consulte procurar texto.

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

←  Limite o número de resultados retornadosTexto de pesquisa →
Dê Feedback
© 2022 MongoDB, Inc.

Sobre

© 2022 MongoDB, Inc.