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"` }
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!