Jak mogę wybrać liczbę rekordów dla określonego pola za pomocą mongodb?

Mam zbiór dokumentów w mongodb, z których każdy ma pole „grupy”, które odnosi się do grupy, która jest właścicielem dokumentu. Dokumenty wyglądają tak:

{
  group: <objectID>
  name: <string>
  contents: <string>
  date: <Date>
}

Chciałbym skonstruować zapytanie, które zwraca najnowsze N ​​dokumentów dla każdej grupy. Załóżmy na przykład, że istnieje 5 grup, z których każda ma 20 dokumentów. Chcę napisać zapytanie, które zwróci pierwsze 3 dla każdej grupy, co zwróci 15 dokumentów, po 3 z każdej grupy. Każda grupa otrzymuje 3, nawet jeśli inna grupa ma czwartą, która jest nowsza.

W świecie SQL uważam, że tego typu zapytanie jest wykonywane za pomocą „partycji przez” i licznika. Czy jest coś takiego w mongodb, poza wykonaniem N + 1 oddzielnych zapytań dla N grup?

questionAnswers(2)

yourAnswerToTheQuestion