Heim >Backend-Entwicklung >Golang >Wie projiziere ich Felder in MongoDB-Dokumenten effektiv mit dem Mongo-Go-Treiber?
Projektfelder in MongoDB-Dokumenten mit offiziellem Mongo-Go-Treiber
Das Filtern von Feldern in MongoDB-Dokumenten ist für den selektiven Datenabruf und die Leistungsoptimierung von entscheidender Bedeutung . Um dies zu erreichen, bietet der offizielle Mongo-Go-Treiber flexible Optionen.
Problemstellung:
Versuche, die Methode findopt.Projection zu verwenden, um ein Feld in a zu unterdrücken MongoDB-Dokument ist nicht erfolgreich. Trotz der Angabe einer Projektion mithilfe der Feldstruktur bleibt das Feld im zurückgegebenen Dokument intakt.
Lösung:
Ursache: Die für die Projektion verwendete Feldstruktur ist nicht möglich Zugriff auf seine Felder aufgrund nicht exportierter Feldnamen.
Abhilfe: Exportieren Sie den Feldnamen der Struktur und verwenden Sie Struktur-Tags, um ihn dem entsprechenden zuzuordnen MongoDB-Feld (in diesem Fall _id).
Hier ist der geänderte Code:
type fields struct { ID int `bson:"_id"` } s := bson.NewDocument() filter := bson.NewDocument(bson.EC.ObjectID("_id", starterId)) projection := fields{ ID: 0, } result := staCon.collection.FindOne( nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
Alternativ können Sie ein bson.Document als Projektion verwenden:
projection := bson.NewDocument( bson.EC.Int32("_id", 0), ) result := staCon.collection.FindOne( nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
Durch die Implementierung dieser Änderungen wird die gewünschte Feldfilterung erreicht, was zu einem Dokument führt, bei dem das _id-Feld unterdrückt wird.
Das obige ist der detaillierte Inhalt vonWie projiziere ich Felder in MongoDB-Dokumenten effektiv mit dem Mongo-Go-Treiber?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!