Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

比較/ソートの順序

項目一覧

  • 数値タイプ
  • 文字列
  • 配列
  • オブジェクト
  • 日付とタイムスタンプ
  • Non-existent Fields
  • BinData

ソート操作で異なる BSON types の値を比較する場合、MongoDB は最低から最高の順に次の比較順序を使用します。

  1. MinKey(内部型)

  2. null

  3. 数値(ints、longs、doubles、decimals)

  4. シンボル、文字列

  5. オブジェクト

  6. 配列

  7. BinData

  8. ObjectId

  9. ブール値

  10. 日付

  11. タイムスタンプ

  12. 正規表現

  13. MaxKey(内部型)

注意

$range クエリおよび集計演算子は、BSON 型 がクエリ値の型と一致するフィールドに対してのみ比較を実行します。MongoDB は型のブラケット処理による限定的な BSON 間比較をサポートします。

MongoDB は、一部の型を比較の目的で同等と見なします。たとえば、数値型は比較する前に変換されます。

デフォルトでは、MongoDB は単純なバイナリ比較を使用して文字列を比較します。

照合を指定すると、大文字・小文字やアクセント記号など、文字列を比較するための言語独自のルールを指定できます。

照合仕様の構文は次のとおりです。

{
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}

照合を指定する場合、locale フィールドは必須です。その他の照合フィールドはすべてオプションです。フィールドの説明については、照合ドキュメントを参照してください。

コレクションにも操作にも照合が指定されていない場合、MongoDB では以前のバージョンで使用されていた単純なバイナリ比較によって文字列が比較されます。

配列の比較では、次のようになります。

  • 小なり比較または昇順ソートでは、BSON 型のソート順で配列の最小要素が比較されます。

  • 大なり比較または降順ソートでは、BSON 型のソート順の逆順で配列の最大要素が比較されます。

  • 値が 1 要素の配列(例: [ 1 ])と配列以外のフィールド(例: 2)を比較する場合、12 が比較されます。

  • 空の配列(例: [ ])を比較する場合、空の配列は null 値より小さいか、フィールド値が欠落していると見なされます。

MongoDB の BSON オブジェクトの比較では、次の順序が使用されます。

  1. BSON オブジェクト内に出現する順序でキーと値のペアを再帰的に比較します。

  2. フィールド型を比較します。MongoDB は、フィールド型に対して、最低から最高の順に次の比較順序を使用します。

    1. MinKey(内部型)

    2. null

    3. 数値(ints、longs、doubles、decimals)

    4. シンボル、文字列

    5. オブジェクト

    6. 配列

    7. BinData

    8. ObjectId

    9. ブール値

    10. 日付

    11. タイムスタンプ

    12. 正規表現

    13. MaxKey(内部型)

  3. フィールド型が等しい場合は、キー フィールド名を比較します。

  4. キー フィールド名が等しい場合は、フィールド値を比較します。

  5. フィールド値が等しい場合は、次のキーと値のペアを比較します(手順 1 に戻ります)。それ以上のペアを持たないオブジェクトは、それ以上のペアを持つオブジェクトよりも小さくなります。

Date オブジェクトは Timestamp オブジェクトの前に並べ替えられます。

比較では、存在しないフィールドは空の BSON オブジェクトであるかのように扱われます。そのため、ドキュメント { }{ a: null }a フィールドで並べ替えを行うと、並べ替え順序においてドキュメントは同等として扱われます。

MongoDB は BinData を次の順序で並べ替えます。

  1. 最初は、データの長さまたはサイズ順。

  2. 次に、BSON 1 バイト サブタイプ順。

  3. 最後に、データ順(バイト単位の比較を実行)。

戻る

BSON types