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?
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()
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);
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! :)
le code de ma question était vrai, maintenant je vois, il y avait un problème de camelCase sur le champ 'pdate'.