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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage