Я использую Spring Data Mongo, и одно из наших агрегатов использует неправильный индекс.Я использую:
- spring-data-mongodb v 1.10.11.RELEASE
- драйвер монго 3.6.4
- JAVA 1.8
Упрощенная версия кода будет выглядеть примерно так:
Criteria criteria = createMatch("user", "email");
AggregationOperation userCriteria = Aggregation.match(criteria);
TypedAggregation<NucleusOccupancySummary> aggregation = Aggregation.newAggregation(User.class,userCriteria);
AggregationResults<NucleusOccupancySummary> aggregationResults = mongoOperations.aggregate(aggregation, User.class, User.class);
В этом случае при агрегировании выбирается неправильный индекс.Я смог заставить его использовать правильный индекс, добавив сортировку в запрос, но это кажется небрежным способом сделать это.
Мне интересно, имел ли кто-нибудь успех в использовании агрегацииили указатели курсора (или любым другим способом) для указания индекса, который следует использовать для агрегирования.