Puede utilizar un mapa genérico, por ejemplo:
var result map[string]interface{}
err := collection.Find(query).One(&result)
Encontrarás gente usando bson.M
, que también es un mapa con el mismo tipo subyacente. No hay nada especial en bson.M
, aunque. Es solo un nombre corto y conveniente para un mapa. Puede crear su propio nombre conveniente o usar un mapa simple como en el ejemplo anterior.
Otra forma de tener acceso a documentos sin un esquema definido es usando bson.D
en lugar del tipo de mapa anterior. bson.D
es más útil cuando el orden de los elementos en el documento es relevante, o si desea reducir ligeramente la sobrecarga de la operación (los mapas son un poco más costosos de manejar debido a su naturaleza). El bson.D
type es una porción de valores de estructura con pares clave/valor. A diferencia de bson.M
, bson.D
es especial y es manejado internamente por el paquete mgo/bson.