2016-01-20 178 views
1

获得组的唯一值我在MongoDB数据库中有以下记录,我将只有这些年。例如如果我有:春天的数据通过

ID year ... 
1 "2016" ... 
2 "2016" ... 
3 "2017" ... 
4 "2016" ... 
5 "2018" ... 

那么我将获得:

2016 
2017 
2018 

的结果。 Spring Data与方法名称(我没有看过GroupBy的方法)或者@Query都可以做到这一点。

回答

1

您可以发出distinct()命令以获得所需的结果。在蒙戈外壳,运行以下命令:

db.collection.distinct("year") 

在SpringData,您需要使用@Autowired注解从Spring数据的MongoDB的基础MongoTemplate带来

@Autowired 
MongoTemplate mongoTemplate; 

然后,您可以使用mongoTemplate实例来查询底层集合为

List<String> coll = mongoTemplate.getCollection("collectionName").distinct("year"); 
+0

有没有可能通过@Query或方法名来做到这一点? – quma

+0

@ user3318489不是我知道的不幸。 – chridam

+1

有'findDistinct ...'方法,但它们丢弃重复的* docments *。你想基于一个特定的领域做到这一点 –