Queryable Encryption前缀、后缀和子字符串查询在MongoDB 8.2 的公共预览版中可用。请勿在生产环境中启用这些查询类型。公共预览功能将与 GA功能不兼容,您必须删除任何启用这些查询的集合。
定义
8.2版本新增。
注意
$encStrNormalizedEq
聚合操作符符仅适用于启用了 Queryable Encryption的集合中的加密字段。对于未加密字段,请使用“文本搜索”运算符来匹配子字符串。
$encStrNormalizedEq
true
如果规范化字符串值与指定字符串的规范化字符串版本匹配,则返回 。查询的字段必须启用子字符串查询,并且查询字符串的长度必须介于配置的最小字符数和最大字符数之间(含)。注意
该操作符必须对文本搜索索引进行操作。
$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' } }])