Usar tags estruturadas
Você pode especificar a maneira como o Go Driver converte as estruturas Go em BSON usando tags estrutura.
Exemplo
Dica
Leia os Exemplos de uso para saber como executar este exemplo.
O código a seguir declara uma estrutura do tipo BlogPost
. Esta estrutura contém uma marcação estruturada que mapeia o campo WordCount
para o nome de campo BSON word_count
. Por padrão, o driver transfere os outros campos como a letra minúscula do nome do campo da estrutura:
type BlogPost struct { Title string Author string WordCount int `bson:"word_count"` LastUpdated time.Time Tags []string }
O exemplo a seguir cria uma instância BlogPost
e a insere na coleção posts
. Durante a operação de inserção, o driver interpreta a marcação estrutura para organizar o campo estrutura WordCount
como word_count
:
Dica
Leia os Exemplos de uso para saber como executar esse exemplo.
coll := client.Database("sample_training").Collection("posts") post := BlogPost{ Title: "Annuals vs. Perennials?", Author: "Sam Lee", WordCount: 682, LastUpdated: time.Now(), Tags: []string{"seasons", "gardening", "flower"}, } // Inserts a document describing a blog post into the collection _, err = coll.InsertOne(context.TODO(), post) if err != nil { panic(err) }
Veja um exemplo totalmente executável .
Resultado esperado
Após executar o exemplo completo, você pode encontrar o seguinte documento na collection posts
:
{ "_id" : ObjectId("..."), "title" : "Annuals vs. Perennials?", "author" : "Sam Lee", "word_count" : 682, "lastupdated": ..., "tags" : ["seasons", "gardening", "flower"] }
Para obter um exemplo sobre como localizar um documento, consulte Localizar um documento.
Informações adicionais
Para saber mais sobre o uso de marcações de estrutura, conversão de/para BSON e tratamento de possíveis erros, consulte Trabalhar com BSON.