Tri des requêtes MongoDB de printemps

je suis assez nouveau sur mongodb, et pendant que j'essaye de faire des requêtes mongodb ordonnées. Mais la méthode de tri de mongodb de données de printemps est dépréciée. J'ai donc utilisé org.springframework.données.domaine.Trier

Query query = new Query();
query.with(new Sort(Sort.Direction.ASC,"pdate"));
return mongoTemplate.find(query, Product.class);

j'ai utilisé ce bloc de code. Mais ce n'est pas le tri des données. Alors pouvez-vous préférez utiliser toute méthode utile pour cette pratique?

25
demandé sur İlker Korkut 2013-08-30 01:09:23

4 réponses

Vous pouvez définir votre sort de cette manière pour ignorer cas:

new Sort(new Order(Direction.ASC, FIELD_NAME).ignoreCase()
23
répondu dev 2014-11-08 15:05:15

Vous pouvez utiliser l'agrégation pour trier vos données. Vous devez utiliser des critères de correspondance et de regroupement pour la requête d'agrégation et décompresser votre champ.

AggregationOperation match = Aggregation.match(matching criteria);
AggregationOperation group = Aggregation.group("fieldname");
AggregationOperation sort = Aggregation.sort(Sort.Direction.ASC, "fieldname");
Aggregation aggregation = Aggregation.newAggregation(Aggregation.unwind("fieldname"),match,group,sort);
3
répondu Jijesh Kumar 2014-09-22 06:48:53

lorsque vous avez écrit une requête personnalisée dans votre dépôt que vous pouvez effectuer le tri pendant l'invocation. Comme,

Dépôt

@Query("{ 'id' : ?0}")
List<Student> findStudent(String id, Sort sort);

pendant l'invocation

Sort sort = new Sort(Sort.Direction.ASC, "date")
List<Student> students = studentRepo.findStudent(1, sort);  

j'espère que cela aide! :)

2
répondu imbond 2018-07-29 17:49:40

le code de ma question était vrai, maintenant je vois, il y avait un problème de camelCase sur le champ 'pdate'.

0
répondu İlker Korkut 2017-05-22 11:34:08