• $regex
    • 描述
      • $options
    • 示例

    $regex

    描述

    $regex 操作提供正则表达式模式匹配字符串查询功能。SequoiaDB 使用的是 PCRE 正则表达式。

    Note:

    $regex 与 $options 配套使用。

    关于正则表达式规则,请参阅 Perl正则表达式手册。

    $options

    $options 提供四种选择标志:

    • i: 设置这个修饰符,模式中的字母进行大小写不敏感匹配。

    • m: 默认情况下,pcre认为目标字符串是由单行字符组成的,“行首”元字符(^)仅匹配字符串的开始位置,而“行末”元字符($)仅匹配字符串末尾,或者最后的换行符。当这个修饰符设置之后,“行首”和“行末”就会匹配目标字符串中任意换行符之前或之后,另外,还分别匹配目标字符串的最开始和最末尾位置,如果目标字符串中没有“\n”,或者模式中没出现“^”或“$”,设置这个修饰符不产生任何影响。

    • x: 设置这个修饰符,模式中没有经过转义的或不在字符类中的空白数据字符总会被忽略,并且位于一个未转义的字符类外部的“#”字符和下一行换行符之间的字符也被忽略。

    • s: 设置这个修饰符,模式中的点号元字符匹配所有字符,包含换行符,如果没有这个修饰符,点号不匹配换行符。

    示例

    • 查询集合 foo.bar 下“str”字段值匹配不区分大小写的正则表达式 dh.*fj 的记录
    1. > db.foo.bar.find( { str: { $regex: 'dh.*fj', $options: 'i' } } )