模块:Mongoid::Matcher::Not Private

定义于:
lib/mongoid/matcher/not.rb

Overview

该模块是私有 API 的一部分。 您应尽可能避免使用此模块,因为它将来可能会被删除或更改。

$not表达式的内存匹配器。

另请参阅:

类方法摘要折叠

类方法详细信息

匹配? (exists, value, Condition) ⇒ true | false ,布尔值

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回值是否满足 $not表达式。

参数:

  • 存在 ( true | false )

    值是否存在。

  • ( Object )

    要检查的值。

  • 条件 ( Hash | Regexp | BSON::Regexp::Raw )

    $not 条件谓词。

返回:

  • ( true | false )

    值是否匹配。

  • 布尔值


22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/mongoid/matcher/not.rb', line 22

module_function def 匹配?(存在, , 条件)
  案例 条件
  when ::regexp, BSON::regexp::原始
    !正则表达式(Regex).匹配?(存在, , 条件)
  when 哈希
    if 条件.空?
      提高 Errors::InvalidQuery, " $not 参数不能为空哈希: #{ Errors :: InvalidQuery . truncate_expr ( condition ) } "
    end

    条件.全部? do |(k, cond_v)|
      k = k.to_s
      除非 k.start_with?('$')
        提高 Errors::InvalidQuery, " $not 参数必须是操作符: #{ Errors :: InvalidQuery . truncate_expr ( k ) } "
      end

      !FieldOperator.获取(k).匹配?(存在, , cond_v)
    end
  else
    提高 Errors::InvalidQuery, " $not 参数必须是哈希或正则表达式: #{ Errors :: InvalidQuery . truncate_expr ( condition ) } "
  end
end