照合を使用したコレクションの作成
照合順序を指定すると、大文字や小文字、アクセント記号など、string を比較するための言語独自のルールを指定できます。
手順
4
localeの値を選択します。
MongoDB でサポートされている言語からlocaleを選択する必要があります。
その他の照合オプション パラメーターはすべてオプションです。 フィールドの説明については、「照合 」を参照してください。
制限と制限
パラメータ numericOrdering
がtrue
に設定されている場合、次の制限が適用されます。
比較では、連続する負でない整数のサブストリングのみが考慮されます。
numericOrdering
は次の操作をサポートしていません。+
-
指数
数値または 10 進数(ND)カテゴリの Unicode コード ポイントだけが数字として扱われます。
数字の長さが 254 文字を超える場合、超過文字は別の数字として扱われます。
例
次の文字列の数値および 10 進数値を含むコレクションを検討します。
[ { "n": "1" }, { "n": "2" }, { "n": "-2.1" }, { "n": "2.0" }, { "n": "2.20" }, { "n": "10"}, { "n": "20" }, { "n": "20.1" }, { "n": "-10" }, { "n": "3" } ]
次の検索クエリでは、 numericOrdering
パラメータを含む照合ドキュメントを使用します。
db.c.find( { }, { _id: 0 } ).sort( { n: 1 } ).collation( { locale: 'en_US', numericOrdering: true } )
Compass でドキュメントをクエリする方法の詳細については、 データのクエリ を参照してください。
この操作では、次の結果を返します。
[ { "n": "-2.1" }, { "n": "-10" }, { "n": "1" }, { "n": "2" }, { "n": "2.0" } { "n": "2.20" }, { "n": "3" }, { "n": "10" }, { "n": "20" }, {"n": "20.1" } ]
numericOrdering: true
の場合、文字列値を数値のように昇順でソートします。2 つの負の値
-2.1
と-10
は、サポート対象外の-
の文字が使われているため、期待どおりのソート順序でソートされません。