Когда мы делаем Агрегирование в MongoDB, данные обрабатываются поэтапно, а выходные данные одного этапа предоставляются в качестве входных данных для следующего этапа.
В моем коде первый этап был проектом, а не соответствием (запрос):
Aggregation aggregate = Aggregation.newAggregation(project, match, skip, limit, sort);
Вот почему это не сработало.
Я изменил его на:
Aggregation aggregate = Aggregation.newAggregation(match, skip, limit, project, sort);
А теперь работает нормально.