Heim >Backend-Entwicklung >Golang >Wie konstruiere ich verschachtelte ODER/AND-Abfragen mit dem MongoDB Go-Treiber?
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 } } }
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 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}, }, }
Empfehlungen
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!