MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Eindeutig in Spring Data MongoDB

Nach ein wenig Herumstöbern bin ich auf die folgende Lösung gekommen, die in Ordnung ist und funktioniert, aber wahrscheinlich verbessert werden kann. Spring ist für mich immer noch ziemlich neu, wenn Sie also eine bessere Idee haben, lassen Sie es mich bitte wissen.

Wie auch immer, hier ist es:

Zunächst einmal verwenden wir den @Autowired Anmerkung zum Einbringen des Basis-MongoTemplates aus spring-data-mongodb

@Autowired
MongoTemplate mongoTemplate;

Sobald wir das haben, können wir es verwenden, um einige Abfragen zu machen. Beachten Sie, dass dies der leicht stinkende Teil ist, weil Sie Spring mitteilen müssen, was der Rückgabetyp ist, und das mag es nicht wirklich …

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

Im obigen Code werden Sie feststellen, dass ich eine Variable vom Typ Liste namens coll definiert habe, die das @Autowired MongoTemplate verwendet Variable, um eine Sammlung und dann ein Feld mit "distinct" zu erhalten. Dies ist analog zu db.whatever.distinct("term") auf der Mongo-Shell.