Ich hat einen Datensatz sieht aus, alsZählung mehr verschiedene Felder, die durch Gruppe mit Mongo
{"BrandId":"a","SessionId":100,"UserName":"tom"}
{"BrandId":"a","SessionId":200,"UserName":"tom"}
{"BrandId":"b","SessionId":300,"UserName":"mike"}
Ich mag würde unterschiedliche Sitzungs- und Benutzergruppe von brandid zählen, die Probe SQL ist wie:
select brandid,count_distinct(sessionid),count_distinct(username)
from data
group by brandid
Ich habe versucht, Mongo DB zu schreiben, mein aktueller Code ist wie folgt und es funktioniert nicht. Gibt es das überhaupt, damit es funktioniert?
db.logs.aggregate([
{$group:{
_id:{brand:"$BrandId",user:"$UserName",session:"$SessionId"},
count:{$sum:1}}},
{$group:{
_id:"$_id.brand",
users:{$sum:"$_id.user"},
sessions:{$sum:"$_id.session"}
}}
])
für das bestimmte Beispiel die erwartete Anzahl ist
{"BrandId:"a","countSession":2,"countUser":1}
{"BrandId:"b","countSession":1,"countUser":1}
, wenn Sie SQL wissen, das erwarten Ergebnis als gleiche wie die SQL ich erwähnt.
@JohnnyHK Nr. Definitiv ist es nicht das Problem. Wenn Sie wissen, wie Sie mehrere Felder zählen, lassen Sie es mich wissen. – erkpwejropi
Was ist die erwartete/gewünschte Ausgabe? – chridam
@chridam Ich füge erwartete Ausgabe in Frage. Bitte helfen Sie – erkpwejropi