je suis assez nouveau sur mongodb, et tout en essayant de faire une requête ordonnée mongodb. Cependant, la méthode de tri de mongodb est obsolète. J'ai donc utilisé org.springframework.data.domain.Sort
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érer utiliser une méthode utile pour cette pratique?
Vous pouvez définir votre tri de cette manière pour ignorer la casse:
new Sort(new Order(Direction.ASC, FIELD_NAME).ignoreCase()
Lorsque vous avez écrit une requête personnalisée dans votre référentiel, vous pouvez effectuer un tri lors de l'appel. Comme,
Repository
@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 cette aide! :)
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érouler 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);
Le code de ma question était vrai, je vois maintenant qu'il y avait un problème avec camelCase sur le champ 'pdate'.