Как я могу выбрать количество записей для определенного поля, используя mongodb?
У меня есть коллекция документов в mongodb, у каждого из которых есть поле «группа», которое относится к группе, которой принадлежит документ. Документы выглядят так:
{
group: <objectID>
name: <string>
contents: <string>
date: <Date>
}
Я хотел бы построить запрос, который возвращает самые последние N документов для каждой группы. Например, предположим, что есть 5 групп, в каждой из которых по 20 документов. Я хочу написать запрос, который будет возвращать 3 верхних для каждой группы, который будет возвращать 15 документов, 3 из каждой группы. Каждая группа получает 3, даже если у другой группы есть 4-е, что более недавно.
Я полагаю, что в мире SQL этот тип запроса выполняется с помощью «разбиения по» и счетчика. Есть ли такая вещь в mongodb, если не делать N + 1 отдельных запросов для N групп?