Wie kann ich mit mongodb eine Anzahl von Datensätzen für ein bestimmtes Feld auswählen?
Ich habe eine Sammlung von Dokumenten in Mongodb, von denen jede ein "Gruppen" -Feld hat, das sich auf eine Gruppe bezieht, der das Dokument gehört. Die Dokumente sehen folgendermaßen aus:
{
group: <objectID>
name: <string>
contents: <string>
date: <Date>
}
Ich möchte eine Abfrage erstellen, die die neuesten N Dokumente für jede Gruppe zurückgibt. Angenommen, es gibt 5 Gruppen mit jeweils 20 Dokumenten. Ich möchte eine Abfrage schreiben, die die Top 3 für jede Gruppe zurückgibt, die 15 Dokumente zurückgibt, 3 von jeder Gruppe. Jede Gruppe erhält 3, auch wenn eine andere Gruppe eine 4. Gruppe hat, die jünger ist.
In der SQL-Welt glaube ich, dass diese Art der Abfrage mit "Partition by" und einem Zähler durchgeführt wird. Gibt es so etwas in Mongodb, außer N + 1 separate Abfragen für N Gruppen zu machen?