私はmongodbではかなり新しいです。そして、順序付けられたmongodbクエリを作成しようとしています。ただし、スプリングデータmongodbのソート方法は非推奨です。だから私はorg.springframework.data.domain.Sort
:
Query query = new Query();
query.with(new Sort(Sort.Direction.ASC,"pdate"));
return mongoTemplate.find(query, Product.class);
このコードブロックを使用しました。ただし、データはソートされません。だから、あなたはこの実践のために有用な方法を使用することを好むことができますか?
大文字と小文字を区別しないように、この方法でソートを定義できます。
new Sort(new Order(Direction.ASC, FIELD_NAME).ignoreCase()
sリポジトリにカスタムクエリを記述したら、呼び出し中にソートを実行できます。お気に入り、
リポジトリ
@Query("{ 'id' : ?0}")
List<Student> findStudent(String id, Sort sort);
呼び出し中
Sort sort = new Sort(Sort.Direction.ASC, "date")
List<Student> students = studentRepo.findStudent(1, sort);
これがお役に立てば幸いです! :)
データの並べ替えに集計を使用できます。集計クエリに一致およびグループ化の基準を使用し、フィールドを巻き戻す必要があります。
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);
query.with(new Sort(Sort.Direction.ASC, "timestamp"));
昇順または降順のソートをそれぞれ指定するには、フィールドとしてのソートパラメーター1または-1を覚えておいてください。
私の質問のコードは真実でした。今では、フィールド「pdate」にキャメルケースの問題がありました。