Heim >Backend-Entwicklung >Golang >Wie frage ich unstrukturierte MongoDB-Sammlungen in Go mit mgo ab?

Wie frage ich unstrukturierte MongoDB-Sammlungen in Go mit mgo ab?

Barbara Streisand
Barbara StreisandOriginal
2024-12-26 08:44:14566Durchsuche

How to Query Unstructured MongoDB Collections in Go with mgo?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn