Java 指定Spring数据类型的索引

Java 指定Spring数据类型的索引,java,aggregation-framework,spring-data-mongodb,spring-mongo,Java,Aggregation Framework,Spring Data Mongodb,Spring Mongo,我使用的是Spring数据Mongo,我们的一个聚合使用了错误的索引。我正在使用: spring数据mongodb v 1.10.11.1发布 mongo驱动程序3.6.4 JAVA 1.8 代码的简化版本如下所示: Criteria criteria = createMatch("user", "email"); AggregationOperation userCriteria = Aggregation.match(criteria); TypedAggregation<Nuc

我使用的是Spring数据Mongo,我们的一个聚合使用了错误的索引。我正在使用:

  • spring数据mongodb v 1.10.11.1发布
  • mongo驱动程序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);
Criteria=createMatch(“用户”、“电子邮件”);
AggregationOperation userCriteria=Aggregation.match(标准);
TypedAggregation聚合=聚合.newAggregation(User.class,userCriteria);
AggregationResults AggregationResults=mongoOperations.aggregate(聚合,User.class,User.class);
在这种情况下,聚合选择了错误的索引。通过向查询中添加排序,我已经能够让它使用正确的索引,但这似乎是一种草率的方法


我想知道是否有人成功地使用聚合或光标提示(或任何其他方式)来指定应该用于聚合的索引。

否在春季,即使mongo java驱动程序(
AggregateIterable
)支持聚合查询,也无法将提示传递给聚合查询

当前,
AggregationOptions
支持批大小、游标、解释、allowDiskUse和排序规则


有一个挂起的向聚合添加提示。您可以在那里继续关注。

谢谢您提供的信息!我能够扩展AggregationOptions,以添加在聚合上添加提示的功能。我也在JIRA上发了帖子。我认为这将是一个相对较小的变化与大胜利你是受欢迎的。您还需要在mongoTemplate的doAggregate方法中添加一个更改,以读取AggregationOptions并将其设置为AggregateIterable.user2683814您可以帮助我了解一个工作代码片段它是如何实现的吗。