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.