Я хочу найти пользователей по самой последней дате (предположим, что объект User
имеет поле date
). Данные хранятся в MongoDB и доступны через Spring MongoTemplate.
Пример необработанных данных:
{userId:1, date:10}
{userId:1, date:20}
{userId:2, date:50}
{userId:2, date:10}
{userId:3, date:10}
{userId:3, date:30}
Запрос должен вернуться
{{userId:1, date:20}, {userId:2, date:50}, {userId:3, date:30}}
Метод агрегации, который я использую, таков:
db.table1.aggregate({$group:{'_id':'$userId', 'max':{$max:'$date'}}},
{$sort:{'max':1}}).result