MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como faço para lidar com um hash arbitrário retornado do mongo in go (usando mgo)?


Você pode usar um mapa genérico, por exemplo:
var result map[string]interface{}
err := collection.Find(query).One(&result)

Você encontrará pessoas usando bson.M , que também é um mapa com o mesmo tipo subjacente. Não há nada de especial em bson.M , no entanto. É apenas um nome curto e conveniente para um mapa. Você pode criar seu próprio nome conveniente ou usar um mapa simples como no exemplo acima.

Outra forma de ter acesso a documentos sem um esquema definido é usando bson.D no lugar do tipo de mapa acima. bson.D é mais útil quando a ordem dos elementos no documento é relevante ou se você deseja reduzir um pouco a sobrecarga da operação (os mapas são um pouco mais caros de manusear devido à sua natureza). O bson.D type é uma fatia de valores de struct com pares de chave/valor. Ao contrário de bson.M , bson.D é especial e é tratado internamente pelo pacote mgo/bson.