Ich suche nach Mongo-Aggregation-Code Beispiel, das mehrere Felder aus einer Sammlung abfragt und durch ein paar Felder gruppiert. Meine Sammlung:Spark-Scala-Mongo-Aggregat: Abfrage mehrerer Felder und Gruppen von 2 Feldern
events:
{
_id
prodId:
location:
status:
user:
date:
}
Die obige Sammlung ist sehr flach. Ich suche Ergebnisse wie die unten:
For status "Completed" (This is a $match condition)
{Product: abc
{Location: US
{user, date}
{user, date
{user, date}
.......}
{Location: APAC
{user, date}
{user, date
{user, date}
.......}}
{Product: XYZ
{Location: US
{user, date}
{user, date
{user, date}
.......}
{Location: APAC
{user, date}
{user, date
{user, date}
.......}}
........
Wie schreiben wir dies in Aggregation Framework verschachtelten $group
und $match
oder andere Aggregationsstufen ..
Jede beraten oder Hilfe wird sehr geschätzt. Vielen Dank.
Camille: Danke, dass du zurück zu mir gekommen bist. Ich habe meine Post mit realistischeren Sammlungsfeldern bearbeitet und was ich erreichen muss. Ich suche nach dem Aggregationscode. momentan bin ich soweit gekommen. Ich beschränke den Standort jetzt auf US, um den Datensatz zu reduzieren. 'db.events.aggregate ([ {$ match: {$ und: [ {location: 'US'}, {status: 'end'}, {prodId: {$ ne: null}}, { Benutzer: {$ ne: null}} ]}} , {$ Gruppe: \t { \t \t _id: "$ ProdID", \t \t Benutzer: {$ Push: "$ user"} \t}} , \t {$ out: "eventProdUsersAgg"} ], {allowDiskUse: true} ) '. Aber das gibt mir nur eine Reihe von Benutzern für ein Produkt. – Vamsi
Wie ändere ich das, um Ort und Datum zu erhalten und in dem Format, das ich in meinem Beitrag erwähnt habe? – Vamsi