Docs Menu

cursor.collation()

項目一覧

cursor.collation(<collation document>)

重要

mongosh メソッド

これはmongoshメソッドです。 これは、 Node.jsまたはその他のプログラミング言語固有のドライバー メソッドのドキュメントではありません

ほとんどの場合、 mongoshメソッドはレガシーのmongo shell メソッドと同じように動作します。 ただし、一部のレガシー メソッドはmongoshでは利用できません。

レガシーmongo shell のドキュメントについては、対応する MongoDB Server リリースのドキュメントを参照してください。

MongoDB API ドライバーについては、各言語のMongoDB ドライバードキュメント を参照してください。

バージョン 3.4 で追加

Specifies the collation for the cursor returned by the db.collection.find(). To use, append to the db.collection.find().

cursor.collation()は次の照合ドキュメントを受け入れます。

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

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

フィールド
タイプ
説明

locale

string

ICU のロケールです。サポート対象のロケールのリストについては、「サポートされている言語とロケール」を参照してください。

単純なバイナリ比較を指定するには、"simple"locale 値を指定します。

strength

integer

任意。実行する比較のレベル。ICU の比較レベル に対応します。可能な値は次のとおりです。

説明

1

プライマリ レベルの比較。照合では、基本文字のみの比較を実行し、発音区別記号や大文字と小文字の違いなどの他の相違は無視されます。

2

セカンダリ レベルの比較。照合で、発音区別記号などの二次的な相違まで比較を実行します。つまり、照合では基本文字(プライマリの相違)と発音区別記号(セカンダリの相違)の比較が実行されます。基本文字同士の違いは、二次的な違いよりも優先されます。

3

三次レベルの比較。照合では、大文字と小文字の相違や文字の相違など、三次的な相違まで比較を実行します。つまり、照合では、基本文字(プライマリの相違)、発音区別符号(セカンダリの相違)、大文字と小文字と異表記(三次の相違)を比較します。基本文字間の相違はセカンダリの相違よりも優先され、セカンダリの相違は三次レベルの相違よりも優先されます。

これがデフォルトのレベルです。

4

四次レベル。プライマリから三次までのレベルで句読点を無視する場合や、日本語のテキストを処理する場合に、句読点を考慮する特定のユースケースに限定されます。

5

同一レベル。タイブレークの場合の特定のユースケースに限定されます。

詳細については、「ICU照合:比較レベル」を参照してください。

caseLevel

ブール値

任意。strength レベル 1 または 2 で、大文字と小文字の比較を含めるかどうかを決定するフラグです。

trueの場合、大文字と小文字の比較が含まれます。すなわち

  • strength:1 と共に使用すると、照合では基本文字と大文字と小文字が比較されます。

  • strength:2 と共にに使用すると、照合では、基本文字、発音区別符号(および他のセカンダリ レベルの相違がある場合があります)、大文字と小文字が比較されます。

false の場合、レベル 1 またはレベル 2 での大文字と小文字の比較が含まれません。デフォルトは false に設定されています。

詳細については、「ICU 照合: ケース レベル」を参照してください。

caseFirst

string

任意。三次レベルの比較中に、大文字と小文字の相違のソート順序を決定するフィールドです。

可能な値は次のとおりです。

説明

"upper"

大文字が小文字の前にソートされます。

"Lower"

小文字が大文字の前にソートされます。

"OFF"

デフォルト値。"lower" と似ていますが、若干の違いがあります。相違の詳細については、https://unicode-org.github.io/icu/userguide/strings/properties.html#customization を参照してください。

numericOrdering

ブール値

任意。数字の文字列を数値として比較するか、文字列として比較するかを決定するフラグです。

trueの場合は、数値として比較します。つまり、 "10""2"より大きいです。

falseの場合は、string として比較します。つまり、 "10""2"より小さいです。

デフォルトは、false に設定されています。

alternate

string

任意。照合で、空白と句読点を比較目的の基本文字として考慮するかどうかを決定するフィールドです。

可能な値は次のとおりです。

説明

"non-ignorable"

空白と句読点は基本文字と見なされます。

"shifted"

空白文字と句読点は基本文字とは見なされず、強度のレベルが 3 より高い場合にのみ区別されます。

「 ICU照合:比較レベル 」を参照してください。 詳しくは、 を参照してください。

デフォルトは、"non-ignorable" に設定されています。

maxVariable

string

任意。alternate: "shifted" の場合に無視可能と見なされる文字数を決定するフィールドです。alternate: "non-ignorable" の場合は効果がありません。

可能な値は次のとおりです。

説明

"punct"

空白も句読点も「無視可能」、つまり基本文字とはみなされません。

"space"

空白は「無視可能」です。つまり、基本文字とはみなされません。

backwards

ブール値

任意。発音区別符号付きの文字列を、文字列の後ろからソートするかどうかを決定するフラグです(フランス語の辞書の順序など)。

true の場合は、後ろから前に比較します。

false の場合は、前から後ろに比較します。

デフォルト値は false です。

normalization

ブール値

任意。テキストに正規化が必要かどうかを確認し、正規化を実行するかどうかを決定するフラグです。一般的に、テキストの大部分はこの正規化プロセシングを必要としません。

true の場合は、完全に正規化されているかどうかを確認し、正規化を実行してテキストを比較します。

false の場合はチェックしません。

デフォルト値は false です。

https://unicode-org.github.io/icu/userguide/collation/concesss.html# Normalization を参照してください 詳細については、「 」を参照してください。

このメソッドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

注意

このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

以下のドキュメントを持つ foo コレクションを考えてみましょう。

{ "_id" : 1, "x" : "a" }
{ "_id" : 2, "x" : "A" }
{ "_id" : 3, "x" : "á" }

The following operation specifies a query filter of x: "a". The operation also includes a collation option with locale: "en_US" (US English locale) and strength: 1 (compare base characters only; i.e. ignore case and diacritics):

db.foo.find( { x: "a" } ).collation( { locale: "en_US", strength: 1 } )

この操作により、次のドキュメントが返されます。

{ "_id" : 1, "x" : "a" }
{ "_id" : 2, "x" : "A" }
{ "_id" : 3, "x" : "á" }

If you do not specify the collation, i.e. db.collection.find( { x: "a" } ), the query would only match the following document:

db.foo.find( { x: "a" } )

You can chain other cursor methods, such as cursor.sort() and cursor.count(), to cursor.collation():

db.collection.find({...}).collation({...}).sort({...});
db.collection.find({...}).collation({...}).count();

注意

1 つの操作に複数の照合は指定できません。たとえば、フィールドごとに異なる照合を指定できません。また、ソートと検索を一度に実行する場合、検索とソートで別の照合を使用できません。

項目一覧