Heim >Backend-Entwicklung >Golang >Wie frage ich unstrukturierte MongoDB-Sammlungen in Go mit mgo ab?
Umgang mit unstrukturierten MongoDB-Sammlungen in Go mit mgo
Beim Abfragen einer Sammlung in MongoDB mit mgo ist es möglich, die Daten, die verarbeitet werden sollen, vorzudefinieren in einer Struktur zurückgegeben werden, wie anhand des bereitgestellten Person-Strukturbeispiels demonstriert wird. Es kann jedoch vorkommen, dass die Dokumente in der Sammlung unterschiedliche Schlüsselsätze haben.
So gehen Sie mit unstrukturierten Sammlungen in Go / mgo um
Es gibt mehrere Möglichkeiten um unstrukturierte Sammlungen in Go / mgo zu verarbeiten:
Verwenden von a map:
Durch die Verwendung eines bson.M-Typs, der eine Map[string]-Schnittstelle{} ist, können Sie die Dokumentdaten direkt speichern, ohne eine bestimmte Struktur zu definieren.
var m bson.M err := collection.Find(nil).One(&m) check(err) for key, value := range m { fmt.Println(key, value) }
Verwenden eines Dokument-Slice:
bson.D ist ein Slice-Typ, der die Reihenfolge der Schlüssel beibehält und einen effizienten Mechanismus bietet für den Umgang mit Dokumenten.
var d bson.D err := collection.Find(nil).One(&d) check(err) for i, elem := range d { fmt.Println(elem.Name, elem.Value) }
Verwenden eines Inline-Kartenfelds:
Durch die Verwendung des Inline-BSON-Flags in einem Kartenfeld in einer Struktur können Sie die kombinieren Bequemlichkeit der Verwendung einer Struktur mit der Flexibilität, unbekannte Felder zu verarbeiten.
type Person struct { ID bson.ObjectId `bson:"_id,omitempty"` Name string Phone string Extra bson.M `bson:",inline"` }
Das obige ist der detaillierte Inhalt vonWie frage ich unstrukturierte MongoDB-Sammlungen in Go mit mgo ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!