Heim > Backend-Entwicklung > Golang > Wie konstruiere ich verschachtelte ODER/AND-Abfragen mit dem MongoDB Go-Treiber?

Wie konstruiere ich verschachtelte ODER/AND-Abfragen mit dem MongoDB Go-Treiber?

Susan Sarandon
Freigeben: 2024-12-01 15:33:11
Original
213 Leute haben es durchsucht

How to Construct Nested OR/AND Queries with the MongoDB Go Driver?

Verschachtelte logische Abfragen mit MongoDB Go-Treiber

MongoDB-Abfragen erfordern häufig die Verwendung verschachtelter logischer Operatoren (AND/OR), um Dokumente basierend zu filtern nach mehreren Kriterien. Im Go MongoDB-Treiber können verschachtelte logische Abfragen mithilfe der Typen bson.D und bson.M erstellt werden.

Verschachtelte ODER/AND-Abfragen erstellen

Um eine zu erstellen Bei einer verschachtelten OR/AND-Abfrage müssen Sie den Typ bson.D verwenden, um den äußeren logischen Operator (z. B. $and) darzustellen und ihm bson.E-Elemente zu übergeben. Jedes bson.E-Element stellt ein Feld-Wert-Paar dar, wobei der Feldname der logische Operator sein kann (z. B. $or) und der Wert ein bson.D oder ein bson.A (für Arrays) sein kann.

Beispiel für eine verschachtelte ODER/AND-Abfrage

Betrachten Sie die MongoDB Abfrage:

{
  "$and": {
    "p": 10,
    "$or": {
      "s": 30,
      "a": 1
    }
  }
}
Nach dem Login kopieren

Um diese Abfrage in Go mit dem MongoDB-Treiber darzustellen, können Sie den folgenden Code verwenden:

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

In diesem Beispiel stellt bson.D das äußere $ dar und-Operator, und bson.A stellt den verschachtelten $or-Operator dar. Jedes bson.D innerhalb von $or stellt eine Unterabfrage dar.

Verwenden von bson.M für verschachtelte Abfragen

Sie können zur Darstellung auch den Typ bson.M verwenden verschachtelte Abfragen. bson.M ist eine Map[string]interface{}, die Feldnamen und die entsprechenden Werte enthalten kann. Der Wert kann eine andere bson.M-Instanz sein, die eine verschachtelte Abfrage darstellt.

Zum Beispiel kann die obige Abfrage mit bson.M wie folgt dargestellt werden:

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

Empfehlungen

  • Um ein Array innerhalb eines logischen Operators darzustellen, verwenden Sie bson.A (z. B. bson.A{bson.M{"foo": 1}}).
  • $and ist der standardmäßige logische Operator, daher ist es nicht notwendig, ihn explizit in die Abfrage einzubeziehen.

Wenn Sie diese Richtlinien befolgen, können Sie mithilfe des MongoDB-Treibers effizient verschachtelte ODER/AND-Abfragen in Go erstellen.

Das obige ist der detaillierte Inhalt vonWie konstruiere ich verschachtelte ODER/AND-Abfragen mit dem MongoDB 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