Puedes especificar la forma en que el controlador de Go convierte los structs de Go a BSON utilizando etiquetas de struct.
Ejemplo
Tip
Lee los 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 de campo BSON word_count. Por defecto, el controlador transforma los otros campos en minúsculas del nombre del campo de la estructura:
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.