Puedes especificar la forma en que el Go Driver convierte las estructuras de Go a BSON utilizando etiquetas struct.
Ejemplo
Tip
Lea la Ejemplos de uso para aprender cómo ejecutar este ejemplo.
El siguiente código declara una struct de tipo BlogPost. Esta estructura contiene una etiqueta de estructura que asigna el campo WordCount al nombre del campo BSON word_count. De forma predeterminada, el driver procesa los otros campos como el nombre del campo struct en minúsculas:
type BlogPost struct { Title string Author string WordCount int `bson:"word_count"` LastUpdated time.Time Tags []string }
El siguiente ejemplo crea una instancia de BlogPost y la inserta en la colección posts. Durante la operación de inserción, el controlador interpreta la etiqueta struct para estructurar el campo WordCount como word_count:
Tip
Lee los Ejemplos de uso para aprender cómo ejecutar este ejemplo.
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) }
Mire un ejemplo totalmente ejecutable.
Resultado esperado
Después de ejecutar el ejemplo completo, puedes encontrar el siguiente documento en la colección posts:
{ "_id" : ObjectId("..."), "title" : "Annuals vs. Perennials?", "author" : "Sam Lee", "word_count" : 682, "lastupdated": ..., "tags" : ["seasons", "gardening", "flower"] }
Para obtener un ejemplo de cómo encontrar un documento, consulta Encontrar un documento.
Información Adicional
Para aprender más sobre el uso de etiquetas struct, la conversión hacia/desde BSON y el manejo de posibles errores, consulte trabajando con BSON.