定義
バージョン8.2の新機能。
注意
$encStrNormalizedEq
集計演算子は、 Queryable Encryptionが有効になっているコレクション内の暗号化されたフィールドのみ。暗号化されていないフィールドの場合は、 テキスト検索演算子 を使用して部分文字列を一致させます。
$encStrNormalizedEq
true
正規化された文字列値が指定された文字列の正規化された文字列バージョンと一致する場合は を返します。クエリフィールドでは 部分文字列クエリが有効 になっている必要があり、クエリ文字列の長さは設定された最小文字数と最大文字数の範囲内である必要があります。注意
この演算子は テキスト検索インデックスを操作する必要があります。
$encStrNormalizedEq
式には次の演算子式の構文があります。{ $encStrNormalizedEq: <string> }
動作
大文字と小文字の区別と発音区別符号の区別は、関連付けられた テキスト検索インデックスの構成によって決まります。
検索は空白文字と一致します。
一致させる場合、改行は考慮されません。
トークン化区切り文字はサポートされていません。
例
2 つの方法で表すことができる文字 exe について考えてみましょう。
1 つのコード点、
U+00E9
(を持つ小文字の E )2 つのコード ポイント、
U+0065
(ラテン小文字 E)とそれに続くU+0301
(厳密なアクセントの組み合わせ)
ベアトリクスという名前のこれら 2 つの異なる表現を比較すると、次のようになります。
$eq
false
バイナリ表現が異なるため、 を使用すると と評価されます。$encStrNormalizedEq
true
diacriticSensitive
を使用すると、 設定に関係なく と評価されます。これは、 演算子が両方の文字列を比較する前に両方の文字列を正規化するためです。
db.collection('MyCollection', function (err, collection) { collection.aggregate([ $match: { 'employeeLastName': { $encStrNormalizedEq: 'Béatrice' } }])