Módulo: Mongoid::Matcher::Expression Privado

Definido en:
lib/mongoid/matcher/expresión.rb

Overview

Este módulo es parte de una API privada. Deberías evitar usar este módulo si es posible, ya que puede ser removido o cambiado en el futuro.

Módulo singleton base utilizado para evaluar si un documento dado en memoria coincide con una expresión de query MSQL.

Resumen del método de clase colapsar

Detalles del método de clase

.coincidencias?(documento, expr) ⇒ verdadero | falso, Booleano

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve si un documento cumple con una expresión de query.

Parámetros:

  • Documento (Mongoid::Document)

    El documento.

  • expr (encriptada)

    La expresión.

Devuelve:

  • (true | false)

    Si el documento coincide.

  • (booleano)

Aumenta:



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Archivo 'lib/mongoid/matcher/expression.rb', línea 16

module_function def coincide?(Documento, expr)
  propagar Errors::Consulta no válida, 'Condición nula en el contexto de la expresión' si expr.nil?
  propagar Errors::Consulta no válida, 'Consulta MQL debe proporcionarse como Hash' a menos que expr.is_a?(encriptada)

  expr.¿todos? hacer |k, expr_v|
    k = k.to_s
    si k == '$comment'
      # Nada
      return true
    end

    si k.start_with?('$')
      operador de expresión.Obtener(k).coincide?(Documento, expr_v)
    else
      values = Concordante.extract_attribute(Documento, k)
      si values.longitud > 0
        values.any? hacer |v|
          FieldExpression.coincide?(true, v, expr_v)
        end
      else
        FieldExpression.coincide?(false, nulo, expr_v)
      end
    end
  end
end