MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come gestisco un hash arbitrario restituito da mongo in go (usando mgo)?

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.