Abfrage, kombiniert $Projekt, $entspannen & $Gruppe
Habe ich folgende Daten eingestellt:
{
"_id" : ObjectId("57684f2b61f2af6d49fa6dbd"),
"firstname" : "First1",
"surname" : "Sur1",
"email" : "[email protected]",
"goals" : [
{
"gId" : "base1",
"recordDate" : ISODate("2016-06-21T20:05:48.972Z")
},
{
"gId" : "base2",
"recordDate" : ISODate("2016-06-21T20:05:48.972Z")
},
{
"gId" : "base1",
"recordDate" : ISODate("2016-06-21T20:05:48.972Z")
}
]
}
Muss ich das folgende Ergebnis:
{
"_id" : ObjectId("57684f2b61f2af6d49fa6dbd"),
"firstname" : "First1",
"surname" : "Sur1",
"email" : "[email protected]",
"goals" : [
{
"gId" : "base1",
"count" : 2
},
{
"gId" : "base2",
"count" : 1
}
]
}
Bisher habe ich mich mit dem Aggregat-Abfrage, aber ich konnte nicht finden die Lösung für mein problem. Meine Abfrage sieht so aus, aber es funktioniert nicht. Das erste bit $project
gut läuft auf seinen eigenen und tut so $unwind
und $group
aber ich weiß nicht wie ich es kombinieren kann, es zusammen.
db.getCollection('users').aggregate(
{
$project : {
firstname: "$firstname",
surname: "$surname",
email: "$email",
goals: "$goals"
}
},
{
$unwind: '$goals'
},
{
$group: {
gid: '$goals.gId',
count: {'$sum': 1}
}
}
)
Vielen Dank im Voraus,
Tom
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie es mit der folgenden pipeline
Ergebnis sieht so aus