Heim > Backend-Entwicklung > Golang > Wie konstruiere ich verschachtelte ODER/AND-Abfragefilter im Mongo-Go-Treiber?

Wie konstruiere ich verschachtelte ODER/AND-Abfragefilter im Mongo-Go-Treiber?

Patricia Arquette
Freigeben: 2024-11-17 19:23:01
Original
325 Leute haben es durchsucht

How to Construct Nested OR/AND Query Filters in the mongo-go-driver?

Verschachtelter OR/AND-Abfragefilter in mongo-go-driver

In MongoDB können komplexe Abfragefilter verschachtelte logische Operatoren wie OR und AND beinhalten. Mit dem Mongo-Go-Treiber können Sie diese Filter programmgesteuert erstellen.

Bei der Verwendung verschachtelter logischer Operatoren ist es wichtig, die vom Treiber benötigte Struktur zu verstehen. Der $or-Operator erfordert beispielsweise ein Array von Bedingungen, dargestellt als bson.A. Der $and-Operator hingegen ist die Standardeinstellung und muss nicht explizit angegeben werden.

Betrachten Sie das folgende Beispiel, in dem Sie einen Filter mit einer ODER-Bedingung erstellen möchten, die in einer UND-Bedingung verschachtelt ist:

filter := bson.M{
    "p": 10,
    "$and": bson.D{{"s", 30}, bson.M{"$or": bson.D{{"a", 1}}}}}
}
Nach dem Login kopieren

Dieser Code führt zu einem Fehler, weil er versucht, bson.M mit bson.D innerhalb einer UND-Bedingung zu mischen. Um dies zu beheben, müssen Sie bson.A für die $or-Bedingung verwenden und den unnötigen $and-Operator entfernen:

filter := bson.D{
    {"p", 10},
    {"$or", bson.A{
        bson.D{{"s", 30}},
        bson.D{{"a", 1}},
    }},
}
Nach dem Login kopieren

Alternativ können Sie die folgende vereinfachte Syntax verwenden:

filter := bson.M{
    "p": 10,
    "$or": bson.A{
        bson.M{"s": 30},
        bson.M{"a": 10},
    },
}
Nach dem Login kopieren

Diese Syntax erstellt den gleichen Abfragefilter wie die vorherigen Beispiele. Die Wahl der Syntax hängt von Ihren Vorlieben und der Komplexität Ihrer Abfrage ab.

Das obige ist der detaillierte Inhalt vonWie konstruiere ich verschachtelte ODER/AND-Abfragefilter im Mongo-Go-Treiber?. 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