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 añade la capacidad de encontrar un documento por ID.

Resumen del método de instancia colapsar

Detalles del método de instancia

#execute_or_raise(ids, multi) ⇒ Documento | arreglo<Documento>

Ejecuta los criterios o genera un error si no se encuentran documentos.

Ejemplos:

Ejecutar o elevar

criteria.execute_or_raise(id)

Parámetros:

  • identificaciones (objeto)

    Los argumentos pasaron.

  • multi (true | false)

    Si los argumentos fueron una lista, el valor de retorno debe ser un arreglo.

Devuelve:

Aumenta:



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

def execute_or_raise(identificaciones, multi)
  Resultado = multiple_from_db(identificaciones)
  ¡check_for_missing_documents!(Resultado, identificaciones)
  multi ? Resultado : Resultado.primero
end

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

Nota:

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

Encuentra los documentos coincidentes según los criterios para las IDs proporcionadas.

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 | arreglo<Object> ]...)

    El o los id a localizar.

Devuelve:



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

def buscar(*args)
  identificaciones = prepare_ids_for_find(args)
  raise_invalid si identificaciones.any?(Y:nil?)
  for_ids(identificaciones).execute_or_raise(identificaciones, multi_args?(args))
end

#for_ids(ids) ⇒ Criteria

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

Ejemplos:

Agregar un único criterio de id.

criteria.for_ids([ 1 ])

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

criteria.for_ids([ 1, 2 ])

Parámetros:

  • identificaciones (arreglo)

    La matriz de identificadores.

Devuelve:



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

def for_ids(identificaciones)
  identificaciones = identificadores de mongoize(identificaciones)
  si identificaciones.tamaño > 1
    enviar(id_finder, { _id: { "$in" => identificaciones }})
  else
    enviar(id_finder, { _id: identificaciones.primero })
  end
end

#multiple_from_db(ids) ⇒ Array<Document>

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

Ejemplos:

Obtén los documentos del mapa o de los criterios.

criteria.multiple_from_map_or_db(ids)

Parámetros:

  • identificaciones (arreglo<Object>)

    Los identificadores buscados.

Devuelve:

  • (Array<documento>)

    Los documentos encontrados.



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

def multiple_from_db(identificaciones)
  return entradas si ¿Incorporado?
  identificaciones = identificadores de mongoize(identificaciones)
  identificaciones.¿vacío? ? [] : desde_base_de_datos(identificaciones)
end