Ich habe eine MySQL-Tabelle mit Aufzeichnungen der Namen der Personen und der Zeitpunkt der Ankunft als eine Zahl ausgedruckt. Betrachten Sie es als einen Marathon. Ich möchte wissen, wie viele Menschen in einem gewissen Abstand von Zeit gekommen, die die gleichen sind, so benannt, wo:Migrieren zu MongoDB: wie Abfrage GROUP BY + WHERE
SELECT name, COUNT(*) FROM mydb.mytable
WHERE Time>=100 AND Time<=1000
GROUP BY name
Und als Ergebnisse erhalte ich:
Susan, 1
John, 4
Frederick, 1
Paul, 2
Ich bin jetzt zu MongoDB migrieren, und mit Python zu programmieren (also ich frage nach Pymongo Hilfe). Ich habe versucht, nach Informationen über die GROUP BY-Entsprechung zu suchen (selbst wenn ich gelesen habe, dass NoSQL-Datenbanken bei dieser Art von Operation schlechter sind als die SQL-Datenbanken), aber seit sie die neue agreggate-API veröffentlicht haben, konnte ich keine finden einfaches Beispiel wie dieses gelöst mit der Gruppenmethode, der Map-Reduce Methode oder der brandneuen agreggate API.
Irgendwelche Hilfe?
Ich denke, dass $ name verwendet, ist, was mich gemacht Zweifel wie es geht, da name ist der name des feldes in der datenbank, kein pymongo tag. Warum wird der Name des zu gruppierenden Feldes so ausgedrückt? –
@RomanRdgz Wenn ich ehrlich bin, weiß ich nicht, es war eine Designentscheidung, über die man 10gen fragen müsste, aber ohne das '$' wird die Zeichenkette innerhalb von MongoDB als Literal behandelt, es ist das '$' MongoDB reagiert, als wäre es ein Feldwert – Sammaye