Heim >Backend-Entwicklung >Golang >Wie kann ich die Artikelanzahl basierend auf mehreren Attributwerten in MongoDB mithilfe der Aggregation Pipeline abrufen?
Elementliste durch Überprüfen mehrerer Attributwerte in MongoDB abrufen
Bei der Arbeit mit MongoDB ist es häufig erforderlich, bestimmte Elemente basierend auf mehreren abzurufen Attributwerte, ähnlich der in MySQL verwendeten IN-Bedingung. In diesem Artikel wird gezeigt, wie Sie dies mithilfe einer Kombination von Pipeline-Operationen in MongoDB erreichen.
Aggregations-Framework
In diesem Szenario verwenden wir das Aggregations-Framework, um eine zu erstellen Pipeline, die Daten aus einer MongoDB-Sammlung namens „venueList“ filtert und aggregiert. Ziel ist es, die Gesamtzahl der Benutzer mit bestimmten Betriebssystemen wie Linux oder Ubuntu basierend auf einer Liste von Veranstaltungsort-IDs abzurufen.
Pipeline Stages
Die Die Pipeline besteht aus mehreren Phasen, die zusammenarbeiten, um die Daten zu transformieren und zusammenzufassen:
Erwartete Ausgabe
Die endgültige Ausgabe der Aggregationspipeline wird sein ein Dokument, das die Gesamtzahl der Linux- und Ubuntu-Benutzer über die angegebenen Veranstaltungsort-IDs hinweg enthält:
<code class="json">{ "_id": null, "linux": 14, "ubuntu": 4 }</code>
Go-Implementierung
Um diese Pipeline in Go mit dem mgo-Paket zu verwenden , können Sie diesen Schritten folgen:
<code class="go">query := []bson.M{ {"$match": bson.M{"venueList.id": bson.M{"$in": []string{"VID1212", "VID4343"}}}}, {"$unwind": "$venueList"}, {"$match": bson.M{"venueList.id": bson.M{"$in": []string{"VID1212", "VID4343"}}}}, {"$unwind": "$venueList.sum"}, { "$group": bson.M{ "_id": nil, "linux": bson.M{"$sum": bson.M{"$cond": []interface{}{bson.M{"$eq": []interface{}{"$venueList.sum.name", "linux"}}, "$venueList.sum.value", 0}}}, "ubuntu": bson.M{"$sum": bson.M{"$cond": []interface{}{bson.M{"$eq": []interface{}{"$venueList.sum.name", "ubuntu"}}, "$venueList.sum.value", 0}}}, }, }, }</code>
Das obige ist der detaillierte Inhalt vonWie kann ich die Artikelanzahl basierend auf mehreren Attributwerten in MongoDB mithilfe der Aggregation Pipeline abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!