MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Distinct dans Spring Data MongoDB

Après quelques recherches, j'ai trouvé la solution suivante, qui est correcte et fonctionne, mais qui peut probablement être améliorée. Je suis encore assez nouveau pour Spring, donc si vous avez une meilleure idée, n'hésitez pas à me le faire savoir.

Quoi qu'il en soit, le voici :

Tout d'abord, nous utilisons le @Autowired annotation pour importer la base MongoTemplate de spring-data-mongodb

@Autowired
MongoTemplate mongoTemplate;

Une fois que nous l'avons, nous pouvons l'utiliser pour faire des requêtes. Notez que c'est la partie légèrement malodorante car vous devez dire à Spring quel est le type de retour et il n'aime pas vraiment ça…

// Get the distinct stuff from MongoDB
List<String> coll = mongoTemplate.getCollection("mycollection").distinct("myfield");

Dans le code ci-dessus, vous remarquerez que j'ai défini une variable de type Liste appelée coll qui utilise le @Autowired MongoTemplate variable pour obtenir une collection puis un champ en utilisant distinct. Ceci est analogue à db.whatever.distinct("term") sur la coque Mongo.