Heim >Backend-Entwicklung >Golang >Wie filtere ich bestimmte Felder aus MongoDB-Dokumenten mit dem Mongo-Go-Treiber?

Wie filtere ich bestimmte Felder aus MongoDB-Dokumenten mit dem Mongo-Go-Treiber?

Susan Sarandon
Susan SarandonOriginal
2024-12-19 03:55:12898Durchsuche

How to Filter Specific Fields from MongoDB Documents using the Mongo-Go-Driver?

Felder aus MongoDB-Dokumenten mit Mongo-Go-Driver filtern

Um bestimmte Felder aus einem MongoDB-Dokument mit Mongodb-Go-Driver zu filtern, Die Option findopt.Projection kann verwendet werden. In Ihrem bereitgestellten Code tritt das Problem jedoch auf, weil das Feld _id in der Feldstruktur nicht exportiert wurde (beginnend mit einem Kleinbuchstaben).

Überarbeitete Lösung:

Um dieses Problem zu beheben, sollte der Feldname exportiert werden (beginnend mit einem Großbuchstaben) und Struktur-Tags verwenden, um ihn dem MongoDB-_id-Feld zuzuordnen. Der aktualisierte Code:

type fields struct {
    ID int `bson:"_id"`
}

Projektion mit der Projektionsoption:

Um eine Abfrage mit Projektion durchzuführen, verwenden Sie die Methode „options.FindOne().SetProjection(projection)“. , wobei die Projektion die gewünschten abzurufenden Felder darstellt.

Aktualisiert Code:

projection := fields{
    ID: 0,
}
result := staCon.collection.FindOne(
    nil, filter, options.FindOne().SetProjection(projection)).Decode(s)

Alternative Verwendung von bson.Document:

Alternativ kann ein bson.Document als Projektion verwendet werden:

projection := bson.NewDocument(
    bson.EC.Int32("_id", 0),
)
result := staCon.collection.FindOne(
    nil, filter, options.FindOne().SetProjection(projection)).Decode(s)

Mit diesen Ansätzen können Sie bestimmte Felder aus MongoDB-Dokumenten filtern und unnötige Felder wie _id if unterdrücken gewünscht.

Das obige ist der detaillierte Inhalt vonWie filtere ich bestimmte Felder aus MongoDB-Dokumenten mit dem Mongo-Go-Treiber?. 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