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?