Você terá que usar Spring Data
MongoTemplate - o MongoRepository interfaces são feitas apenas para funcionalidade básica e para um controle mais refinado do que você está consultando, é melhor usar MongoTemplate . Aqui está um exemplo de como obter valores distintos de uma coleção:
Criteria criteria = new Criteria();
criteria.where("dataset").is("d1");
Query query = new Query();
query.addCriteria(criteria);
List list = mongoTemplate.getCollection("collectionName")
.distinct("source",query.getQueryObject());
Aqui está o link para mais informações:mongodb mongoTemplate obtém um campo distinto com alguns critérios