sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo trato con un hash arbitrario devuelto por mongo in go (usando mgo)?

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.