$regex
描述
$regex 操作提供正则表达式模式匹配字符串查询功能。SequoiaDB 使用的是 PCRE 正则表达式。
Note:
$regex 与 $options 配套使用。
关于正则表达式规则,请参阅 Perl正则表达式手册。
$options
$options 提供四种选择标志:
i: 设置这个修饰符,模式中的字母进行大小写不敏感匹配。
m: 默认情况下,pcre认为目标字符串是由单行字符组成的,“行首”元字符(^)仅匹配字符串的开始位置,而“行末”元字符($)仅匹配字符串末尾,或者最后的换行符。当这个修饰符设置之后,“行首”和“行末”就会匹配目标字符串中任意换行符之前或之后,另外,还分别匹配目标字符串的最开始和最末尾位置,如果目标字符串中没有“\n”,或者模式中没出现“^”或“$”,设置这个修饰符不产生任何影响。
x: 设置这个修饰符,模式中没有经过转义的或不在字符类中的空白数据字符总会被忽略,并且位于一个未转义的字符类外部的“#”字符和下一行换行符之间的字符也被忽略。
s: 设置这个修饰符,模式中的点号元字符匹配所有字符,包含换行符,如果没有这个修饰符,点号不匹配换行符。
示例
查询集合 sample.employee 下“str”字段值匹配不区分大小写的正则表达式
dh.*fj
的记录> db.sample.employee.find( { str: { $regex: 'dh.*fj', $options: 'i' } } )