生产环境中完全支持Queryable Encryption相等和范围查询。前缀、后缀和子字符串查询仅在MongoDB 8.2 的公共预览版中可用。请勿在生产环境中启用这些查询类型。前缀、后缀和子字符串查询类型的 GA 功能将与预览功能不兼容。
定义
8.2版本新增。
注意
$encStrNormalizedEq聚合操作符符仅适用于启用了Queryable Encryption的集合中的加密字段。对于未加密字段,请使用“文本搜索”运算符来匹配子字符串。
$encStrNormalizedEqtrue如果规范化字符串值与指定字符串的规范化字符串版本匹配,则返回 。查询的字段必须启用子字符串查询,并且查询字符串的长度必须介于配置的最小字符数和最大字符数之间(含)。注意
该操作符必须对文本搜索索引进行操作。
$encStrNormalizedEq表达式采用以下运算符表达式语法:{ $encStrNormalizedEq: <string> }
行为
区分大小写和区分变音符号由关联文本搜索索引的配置决定。
搜索匹配空白字符。
匹配时不考虑换行符。
不支持分词分隔符。
例子
以字符 é 为例,它可以用两种方式表示:
一个代码点
U+00E9(带锐音符号的拉丁小写字母 E)两个代码点,
U+0065(拉丁小写字母 E)后跟U+0301(组合锐音符)
在比较 Béatrice 名字的两种不同表示形式时:
使用
$eq的结果为false,因为二进制表示形式不同。无论
diacriticSensitive设置如何,使用$encStrNormalizedEq的计算结果均为true,因为该操作符在比较这两个字符串之前会对它们进行规范化。
db.collection('MyCollection', function (err, collection) { collection.aggregate([ $match: { 'employeeLastName': { $encStrNormalizedEq: 'Béatrice' } }])