AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

Bulk.find.collation()(mongoshメソッド)

Bulk.find.collation(<document>)

一括書き込みの照合を指定します。 Bulk.find()検索操作の 照合 を指定するには、 メソッドに追加します。

The Bulk.find.collation() accepts the following collation document:

{
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四次レベル。レベル1から3で句読点を無視する場合や、日本語のテキストをプロセシングする場合に、句読点を考慮する特定のユースケースに限定されます。

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

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

caseLevel

ブール値

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

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

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

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

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

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

caseFirst

string

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

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

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

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

  • "off"デフォルト値。"lower" と似ていますが、若干の違いがあります。違いの詳細については、ICU カスタマイズオプションを参照してください。

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 です。

詳細については、「ICU照合:正規化」を参照してください。

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

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

注意

This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.

restaurants コレクションには、次のドキュメントがあります。

db.restaurants.insertMany( [
{ _id: 1, category: "café", status: "Open" },
{ _id: 2, category: "cafe", status: "open" },
{ _id: 3, category: "cafE", status: "open" }
] )

次の例では、 restaurantsコレクションでBulk()操作ビルダを初期化し、検索フィルターの照合を指定します。

var bulk = db.restaurants.initializeUnorderedBulkOp();
bulk.find(
{ category: "cafe" }
).collation(
{ locale: "fr", strength: 1 }
).update(
{ $set: { status: "closed", points: "0" } }
);
bulk.execute();
{
acknowledged: true,
insertedCount: 0,
insertedIds: {},
matchedCount: 3,
modifiedCount: 3,
deletedCount: 0,
upsertedCount: 0,
upsertedIds: {}
}

この操作では、strength: 1 と照合を指定します。つまり、照合では大文字と小文字と文字の違いを無視します。その結果、フィルターで指定された文字列(cafe)と完全に一致するドキュメントが 1 つしかない場合でも、操作は一致し、コレクション内のすべてのドキュメントを更新します。

一括操作が完了すると、コレクションには次のドキュメントが含まれます。

[
{ _id: 1, category: 'café', status: 'closed', points: '0' },
{ _id: 2, category: 'cafe', status: 'closed', points: '0' },
{ _id: 3, category: 'cafE', status: 'closed', points: '0' }
]
このページを評価