Mongodb Spring数据获取group by的唯一值

Mongodb Spring数据获取group by的唯一值,mongodb,spring-data,Mongodb,Spring Data,我的MongoDB数据库中有以下记录,我只会得到年份。e、 g.如果我有: ID year ... 1 "2016" ... 2 "2016" ... 3 "2017" ... 4 "2016" ... 5 "2018" ... 然后我会得到: 2016 2017 2018 结果呢。对于方法名为Spring的数据(我没有看到GroupBy中的方法)或@Query,这在某种程度上是可能的 您可以发出命令以获得所需的结果。在mongo shell中,运行以下操作: db.

我的MongoDB数据库中有以下记录,我只会得到年份。e、 g.如果我有:

ID   year ...
1   "2016" ...
2   "2016" ...
3   "2017" ...
4   "2016" ...
5   "2018" ...
然后我会得到:

2016
2017
2018

结果呢。对于方法名为Spring的数据(我没有看到GroupBy中的方法)或@Query,这在某种程度上是可能的

您可以发出命令以获得所需的结果。在mongo shell中,运行以下操作:

db.collection.distinct("year")
在SpringData中,您需要使用
@Autowired
注释从SpringDataMongoDB引入基本
MongoTemplate

@Autowired
MongoTemplate mongoTemplate;
然后,您可以使用
mongoTemplate
实例查询底层集合,如下所示:

List<String> coll = mongoTemplate.getCollection("collectionName").distinct("year");
List coll=mongoTemplate.getCollection(“collectionName”).distinct(“年份”);

是否有可能使用@Query或方法名执行此操作?@user3318489不幸的是,我不知道。有
findDistinct…
方法,但它们会丢弃重复的文档。您希望基于一个特定字段执行此操作