Módulo: Mongoid::Matcher::ElemMatch Privado

Definido en:
lib/mongoid/matcher/elem_match.rb

Overview

Este módulo forma parte de una API privada. Debe evitar su uso siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Comparador en memoria para la expresión $elemMatch.

Colapso delresumen del método de clase

Detalles del método de clase

.¿coincide?(existe, valor, condición) ⇒ verdadero | falso, booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve si un valor satisface una expresión $elemMatch.

Parámetros:

  • exists (verdadero | falso)

    No se utiliza.

  • valor (Objeto|<Object> Matriz)

    El valor a comprobar.

  • expr (Hash)

    El predicado de condición $elemMatch.

Devuelve:

  • (verdadero | falso)

    Si el valor coincide.

  • (Booleano)


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
46
47
48
# Archivo 'lib/mongoid/matcher/elem_match.rb', línea 21

module_function def ¿partidos?(exists, valor, condición)
  a no ser que Picadillo === condición
    propagar Errors::Consulta no válida, "$elemMatch requiere un operando hash: #{Errors::InvalidQuery. truncate_expr(condition)}"
  end
  Si Arreglo === valor && !valor.¿vacío?
    valor.any? hacer |v|
      Expresión de coincidencia de elementos.¿partidos?(v, condición)
    end
  else
    # Validar que la condición sea válida, aunque nunca lo intentaremos
    # haciéndolo coincidir.
    condición.cada hacer |k, v|
      k = k.a_s
      Si k.empezar_con?('$')
        begin
          Operador de expresión.Obtener(k)
        rescate Mongoid::Errors::Operador de expresión no válida
          begin
            Operador de campo.Obtener(k)
          rescate Mongoid::Errors::Operador de campo inválido => Excª
            propagar Mongoid::Errors::Operador de coincidencia de elementos no válido.Nuevo(Excª.operador)
          end
        end
      end
    end
    false
  end
end