Como posso selecionar um número de registros por um campo específico usando o mongodb?
Eu tenho uma coleção de documentos no mongodb, cada um dos quais tem um campo "grupo" que se refere a um grupo que possui o documento. Os documentos são assim:
{
group: <objectID>
name: <string>
contents: <string>
date: <Date>
}
Eu gostaria de construir uma consulta que retorna os N documentos mais recentes para cada grupo. Por exemplo, suponha que haja 5 grupos, cada um com 20 documentos. Eu quero escrever uma consulta que retornará o top 3 para cada grupo, que retornaria 15 documentos, 3 de cada grupo. Cada grupo recebe 3, mesmo que outro grupo tenha um quarto mais recente.
No mundo SQL, acredito que esse tipo de consulta é feito com "partição por" e um contador. Existe tal coisa no mongodb, menos de fazer N + 1 consultas separadas para grupos N?