Heim >Backend-Entwicklung >Golang >Warum gibt mein Mgo-Feld „_id' eine leere Zeichenfolge zurück?

Warum gibt mein Mgo-Feld „_id' eine leere Zeichenfolge zurück?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-11 16:53:03912Durchsuche

Why Is My Mgo

Abrufen von „_id“-Werten mit Mgo und Go

Diese Frage befasst sich mit einem Problem, bei dem der „_id“-Wert eines MongoDB-Dokuments konsistent ist wird als leere Zeichenfolge zurückgegeben, wenn mgo mit Go verwendet wird.

Problembeschreibung:

Der Benutzer hat eine Struktur zur Darstellung von MongoDB-Dokumenten definiert, wobei das Feld „_id“ mit Anmerkungen versehen ist mit sowohl json:"id" als auch bson:"_id,omitempty". Beim Abrufen der Dokumente aus der Datenbank wird das Feld „_id“ immer auf eine leere Zeichenfolge gesetzt.

Debugging und Lösung:

Nach der Prüfung des Codes war es so stellte fest, dass in der Anmerkung des Felds „_id“ ein subtiler Fehler vorlag. In der bson:"_id,omitempty"-Annotation wurde ein Tabulator als Leerzeichen anstelle eines Leerzeichens verwendet. Dies führte dazu, dass der MGO-Treiber die Annotation falsch interpretierte.

Der folgende Codeausschnitt zeigt die korrekte Syntax:

type Article struct {
    Id bson.ObjectId `json:"id" bson:"_id,omitempty"`
}

Mit dieser Korrektur wird der _id-Wert nun ordnungsgemäß aus der Datenbank abgerufen und wie erwartet zurückgegeben.

Das obige ist der detaillierte Inhalt vonWarum gibt mein Mgo-Feld „_id' eine leere Zeichenfolge zurück?. 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