Docs Menu
Docs Home
/ / /
Java 同期
/ /

ソート ビルダ

項目一覧

  • Overview
  • sorts クラス
  • 上昇
  • 下降
  • ソート条件の組み合わせ
  • テキストスコア

このガイドでは、MongoDB Java ドライバーのビルダを使用してクエリのソート基準を指定する方法を学びます。

ソート基準は、MongoDB がデータをソートするために使用するルールです。 ソート条件の例は、次のとおりです。

  • 最小数から最大数へ

  • 時刻までの時刻から最新時刻まで

  • 名がアルファベット順に並べられている

ビルダは MongoDB Java ドライバーによって提供されるクラスで、 BSONオブジェクトの構築に役立ちます。 詳細については、ビルダに関するガイド をご覧ください。

ビルダを使用してクエリのソート条件を指定する場合は、こちらのガイドをお読みください。

MongoDB Java ドライバーでソートの基礎を学習したい場合は、ソートに関するガイドをお読みください。

このページの例では、次のドキュメントを含むサンプル コレクションを使用します。

{"_id": 1, "letter": "c", "food": "coffee with milk"}
{"_id": 3, "letter": "a", "food": "maple syrup"}
{"_id": 4, "letter": "b", "food": "coffee with sugar"}
{"_id": 5, "letter": "a", "food": "milk and cookies"}
{"_id": 2, "letter": "a", "food": "donuts and coffee"}
{"_id": 6, "letter": "c", "food": "maple donut"}

Sortsクラスは、MongoDB でサポートされているすべての並べ替え条件演算子の静的ファクトリー メソッドを提供するビルダです。 これらのメソッドはBsonオブジェクトを返します。これは、 FindIterableインスタンスのsort()メソッドまたはAggregates.sort()に渡すことができます。 Aggregatesクラスの詳細については、 集計ビルダに関するガイド を参照してください。

このセクションのクラスとインターフェースの詳細については、次の API ドキュメントを参照してください。

昇順の並べ替えを指定するには、 Sorts.ascending()静的ファクトリー メソッドを使用します。 並べ替える必要があるフィールドの名前をSorts.ascending()に渡します。

次の例では、サンプル コレクション内のドキュメントを_idフィールドの昇順でソートします。

import static com.mongodb.client.model.Sorts.ascending;
// <MongoCollection setup code here>
collection.find().sort(ascending("_id"));

前の例の出力は、次のようになります。

{"_id": 1, "letter": "c", "food": "coffee with milk"}
{"_id": 2, "letter": "a", "food": "donuts and coffee"}
{"_id": 3, "letter": "a", "food": "maple syrup"}
...

降順の並べ替えを指定するには、 Sorts.descending()静的ファクトリー メソッドを使用します。 並べ替える必要があるフィールドの名前をSorts.descending()に渡します。

次の例では、サンプル コレクション内のドキュメントを_idフィールドで降順にソートします。

import static com.mongodb.client.model.Sorts.descending;
// <MongoCollection setup code here>
collection.find().sort(descending("_id"));

上記の例では、次のようなものが出力されます。

{"_id": 6, "letter": "c", "food": "maple donut"}
{"_id": 5, "letter": "a", "food": "milk and cookies"}
{"_id": 4, "letter": "b", "food": "coffee with sugar"}
...

並べ替え条件を結合するには、 Sorts.orderBy()静的ファクトリー メソッドを使用します。 このメソッドは、ソート条件の順序付きリストを含むオブジェクトを構築します。 ソートを実行する際に、左端のソート条件が同値になった場合、ソートはリスト内の次のソート条件を使用して順序を決定します。

次の例では、サンプルコレクション内のドキュメントをletterフィールドで降順でソートし、同点の場合は_idフィールドで昇順にソートします。

import static com.mongodb.client.model.Sorts.orderBy;
import static com.mongodb.client.model.Sorts.ascending;
import static com.mongodb.client.model.Sorts.descending;
// <MongoCollection setup code here>
Bson orderBySort = orderBy(descending("letter"), ascending("_id"));
collection.find().sort(orderBySort);

前の例の出力は、次のようになります。

{"_id": 1, "letter": "c", "food": "coffee with milk"}
{"_id": 6, "letter": "c", "food": "maple donut"}
{"_id": 4, "letter": "b", "food": "coffee with sugar"}
{"_id": 2, "letter": "a", "food": "donuts and coffee"}
{"_id": 3, "letter": "a", "food": "maple syrup"}
{"_id": 5, "letter": "a", "food": "milk and cookies"}

テキスト検索結果は、検索結果が検索stringとどの程度一致するかを示す値であるテキスト スコアで並べ替えることができます。 テキスト検索のテキスト スコアで並べ替えを指定するには、 Sorts.metaTextScore()静的ファクトリー メソッドを使用します。 Sorts.metaTextScore()メソッドを使用してソート条件を指定する方法の詳細な例については、ソートの基礎ガイドの「テキスト検索」セクションを参照してください。

詳細については、「 ソート 」クラス を参照してください API ドキュメント。

戻る

プロジェクション ビルダ