Heim > Backend-Entwicklung > Golang > Warum geben meine Golang-MGO-Abfragen leere Benutzerobjekte zurück?

Warum geben meine Golang-MGO-Abfragen leere Benutzerobjekte zurück?

Susan Sarandon
Freigeben: 2024-12-16 14:46:15
Original
594 Leute haben es durchsucht

Why are my Golang mgo queries returning empty user objects?

Leere Objekte in Golang-mgo-Abfragen

Im bereitgestellten Code wird beim Abfragen von MongoDB nach einem bestimmten Benutzer mit col.Find(bson.M {"user": username}).One(&user), die Benutzerstruktur wird als leeres Objekt initialisiert. Dies liegt daran, dass die Felder der Benutzerstruktur nicht exportiert werden, was dazu führt, dass das MGO-Paket sie ignoriert.

Lösung mithilfe exportierter Felder

Um dieses Problem zu beheben, müssen Sie Sie müssen die Felder der Benutzerstruktur exportieren. Beim Zugriff auf Felder aus MongoDB werden standardmäßig Feldnamen verwendet. Sie können jedoch Tags verwenden, um benutzerdefinierte Feldzuordnungen anzugeben.

Hier ist die geänderte Struktur mit exportierten Feldern und Tags:

type users struct {
    User string `bson:"user" json:"user"`
    Data string `bson:"data" json:"data"`
}
Nach dem Login kopieren

Jetzt werden die Felder der Benutzerstruktur korrekt exportiert und Abfragen liefern die erwarteten Ergebnisse.

Zusätzliche Hinweise zu BSON und JSON Tags:

Die bson- und json-Tags werden verwendet, um anzugeben, wie Go-Strukturfelder MongoDB-Dokumenten bzw. JSON-Daten zugeordnet werden. Das bson-Tag gibt den Feldnamen in einem BSON-Dokument an, und das json-Tag gibt den Feldnamen in JSON-Daten an.

Wenn Sie keine Tags angeben, wird standardmäßig der Feldname in der Struktur verwendet. Durch die Verwendung von Tags können Sie jedoch die Feldnamen anpassen, um die Kompatibilität mit anderen Systemen oder Konventionen zu gewährleisten.

Das obige ist der detaillierte Inhalt vonWarum geben meine Golang-MGO-Abfragen leere Benutzerobjekte zurück?. 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