Puoi utilizzare una mappa generica, ad esempio:
var result map[string]interface{}
err := collection.Find(query).One(&result)
Troverai persone che usano bson.M
, che è anche una mappa con lo stesso tipo sottostante. Non c'è niente di speciale in bson.M
, anche se. È solo un nome breve e conveniente per una mappa. Puoi creare il tuo nome conveniente o utilizzare una mappa semplice come nell'esempio sopra.
Un altro modo per accedere ai documenti senza uno schema definito è utilizzare bson.D
al posto del tipo di mappa sopra. bson.D
è particolarmente utile quando l'ordine degli elementi nel documento è rilevante o se si desidera ridurre leggermente il sovraccarico dell'operazione (le mappe sono un po' più costose da gestire a causa della loro natura). Il bson.D
type è una porzione di valori struct con coppie chiave/valore. A differenza di bson.M
, bson.D
è speciale ed è gestito internamente dal pacchetto mgo/bson.