„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie konstruiere ich verschachtelte ODER/AND-Abfragen mit dem MongoDB Go-Treiber?

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

Veröffentlicht am 11.01.2025
Durchsuche:748

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.

Erstellen verschachtelter ODER/AND-Abfragen

So erstellen Sie eine 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
    }
  }
}

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}},
    }},
}

In diesem Beispiel repräsentiert bson.D den äußeren $and-Operator und bson.A den verschachtelten $or-Operator. 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},
    },
}

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 einzuschließen Abfrage.

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

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3