Wie übergebe ich BSON-Dokumente an Funktionen in Go mit mgo?

Barbara Streisand
Freigeben: 2024-11-21 13:22:11
Original
872 Leute haben es durchsucht

How to Pass BSON Documents to Functions in Go with mgo?

Übergabe von BSON-Dokumenten in Go Lang

In Go können Sie eine Verbindung zu MongoDB herstellen und Daten mithilfe der MGO-Bibliothek bearbeiten. Um Dokumente in MongoDB einzufügen, müssen Sie BSON-Dokumente erstellen, die die Daten darstellen, die Sie speichern möchten.

Beim Übergeben eines BSON-Dokuments an eine Funktion in einem anderen Paket (z. B. dbEngine.go) kann es zu Problemen kommen ein Fehler bei der Verwendung des Typs interface{}. Dies liegt daran, dass mgo erwartet, dass ein bestimmter Typ der BSON-Dokumentstruktur zugeordnet wird.

Anstatt BSON-Dokumente manuell zu erstellen, wird empfohlen, eine Go-Struktur zu verwenden, um die Form der Daten zu definieren, die Sie einfügen möchten. Beispielsweise können Sie in account.go eine Struktur wie folgt erstellen:

type Account struct {
  Id bson.ObjectId `bson:"_id"`
  BalanceAmount int
  // Other field
}
Nach dem Login kopieren

Dann können Sie in dbEngine.go Ihre Einfügefunktion aktualisieren, um einen Zeiger auf die Struktur zu akzeptieren:

func Insert(document interface{}){
  session, err := mgo.Dial("localhost")
  // check error
  c := session.DB("db_name").C("collection_name")
  err := c.Insert(document)
}
Nach dem Login kopieren

Schließlich können Sie mit der Struktur ein neues Konto erstellen und es in MongoDB einfügen:

acc := Account{}
acc.Id = bson.NewObjectId()
acc.BalanceAmount = 3

dbEngine.Insert(&acc);
Nach dem Login kopieren

Durch die Verwendung von a struct stellen Sie sicher, dass die Daten richtig formatiert und mit der von MongoDB geforderten BSON-Dokumentstruktur kompatibel sind.

Das obige ist der detaillierte Inhalt vonWie übergebe ich BSON-Dokumente an Funktionen in Go mit mgo?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage