Módulo: Mongoid::Matcher::Expression Private

Definido em:
lib/mongoid/matcher/ expressão.rb

Visão geral

Este módulo faz parte de uma API privada. Você deve evitar usar este módulo, se possível, pois ele pode ser removido ou alterado no futuro.

Módulo singleton base usado para avaliar se um determinado documento na memória corresponde a uma expressão de query MSQL .

Recolhimento do Resumo do método de classe

Detalhes do método de classe

.correspondências?(documento, expr) ➤ true | false, booleano

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna se um documento satisfaz uma expressão de query .

Parâmetros:

Retorna:

  • (verdadeiro | falso)

    Se o documento corresponde.

  • (Booleano)


19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Arquivo 'lib/mongoid/matcher/ expressão.rb', linha 19

module_function def correspondências?(documento, expr)
  se expr.nada?
    aumentar Errors::Query inválida, "Condição nula no contexto da expressão"
  end
  a menos que Hash === expr
    aumentar Errors::Query inválida, "A query MQL deve ser fornecida como um Hash"
  end
  expr.todos? fazer |k, expr_v|
    k = k.to_s
    se k == "$comment"
      #Nada
      Método true
    end
    se k.start_with?('$')
      ExpressionOperator.obter(k).correspondências?(documento, expr_v)
    mais
      values = Matcher.extract_attribute(documento, k)
      se values.Tamanho > 0
        values.algum? fazer |v|
          Expressão de campo.correspondências?(true, v, expr_v)
        end
      mais
        Expressão de campo.correspondências?(false, nada, expr_v)
      end
    end
  end
end