Módulo: Mongoid::Criteria::Findable

Incluido en:
Mongoid::Criterios
Definido en:
lib/mongoid/criteria/findable.rb

Overview

Módulo Mixin incluido en Mongoid::Criteria que agrega la capacidad de encontrar documentos por identificación.

Colapso del resumen del método de instancia

Detalles del método de instancia

#ejecutar_o_elevar(ids, multi) ⇒ Documento |Matriz

Ejecute los criterios o genere un error si no se encuentran documentos.

Ejemplos:

Ejecutar o elevar

criteria.execute_or_raise(id)

Parámetros:

  • identificaciones (Objeto) -

    Los argumentos pasaron.

  • multi (verdadero | falso)

    Si los argumentos fueran una lista y, por lo tanto, el valor de retorno debería ser una matriz.

Devuelve:

Aumentos:

  • (Errores::DocumentoNoEncontrado)

    Si no devolvió nada.



23
24
25
26
27
# Archivo 'lib/mongoid/criteria/findable.rb', línea 23

def ejecutar_o_elevar(identificaciones, multi)
  resultado = múltiples_de_la_base_de_datos(identificaciones)
  ¡check_for_missing_documents!(resultado, identificaciones)
  multi ? resultado : resultado.primera
end

#find(*args) ⇒ Document | Array<Document>

Nota:

Cada argumento puede ser un ID individual, un array de ID o un array anidado. Cada array se aplanará.

Encuentre los documentos que coincidan con los criterios para los identificadores proporcionados.

Ejemplos:

Buscar por un id.

criteria.find(BSON::ObjectId.new)

Buscar por múltiples identificaciones.

criteria.find([ BSON::ObjectId.new, BSON::ObjectId.new ])

Parámetros:

  • *argumentos ([ Objeto | Matriz<Object> ]...)

    Los identificadores a buscar.

Devuelve:



43
44
45
46
47
# Archivo 'lib/mongoid/criteria/findable.rb', línea 43

def buscar(*args)
  identificaciones = preparar_ids_para_buscar(args)
  raise_invalid Si identificaciones.any?(Y:nil?)
  para_ids(identificaciones).ejecutar_o_elevar(identificaciones, multi_args?(args))
end

#for_ids(ids) ⇒ Criteria

Agrega un criterio al Criteria que especifica un id que debe coincidir.

Ejemplos:

Añade un único criterio de identificación.

criteria.for_ids([ 1 ])

Añadir múltiples criterios de identificación.

criteria.for_ids([ 1, 2 ])

Parámetros:

  • identificaciones (Matriz)

    La matriz de identificadores.

Devuelve:



60
61
62
63
64
65
66
67
# Archivo 'lib/mongoid/criteria/findable.rb', línea 60

def para_ids(identificaciones)
  identificaciones = identificadores de mongoize(identificaciones)
  Si identificaciones.tamaño > 1
    Enviar(id_finder, { _id: { "$en" => identificaciones }})
  else
    Enviar(id_finder, { _id: identificaciones.primera })
  end
end

#multiple_from_db(ids) ⇒ Array<Document>

Obtén los documentos del mapa de identidad y, si no los encuentras, consulta la base de datos.

Ejemplos:

Obtenga los documentos del mapa o criterios.

criteria.multiple_from_map_or_db(ids)

Parámetros:

  • identificaciones (Matriz<Object>)

    Los identificadores buscados.

Devuelve:

  • (Matriz)

    Los documentos encontrados.



78
79
80
81
82
# Archivo 'lib/mongoid/criteria/findable.rb', línea 78

def múltiples_de_la_base_de_datos(identificaciones)
  return entradas Si ¿incorporado?
  identificaciones = identificadores de mongoize(identificaciones)
  identificaciones.¿vacío? ? [] : desde_base_de_datos(identificaciones)
end