Módulo: Mongoid::Criteria::Findable

Incluído em:
Mongoid::Criteria
Definido em:
lib/mongoid/criteria/findable.rb

Visão geral

Módulo Mixin incluído no Mongoid::Criteria que adiciona a capacidade de localizar documento por ID.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#execute_or_raise(ids, multi) ➤ Documento | Array <Documento>

Execute os critérios ou gere um erro se nenhum documento for encontrado.

Exemplos:

Executar ou aumentar

criteria.execute_or_raise(id)

Parâmetros:

  • ids (Objeto)

    Os argumentos foram passados.

  • multi (verdadeiro | falso)

    Se os argumentos eram uma lista e, portanto, o valor de retorno deveria ser uma array.

Retorna:

Aumenta:



23
24
25
26
27
# Arquivo 'lib/mongoid/criteria/findable.rb', linha 23

def execute_or_raise(ids, multi)
  Resultado = multiple_from_db(ids)
  check_for_missing_documents!(Resultado, ids)
  multi ? Resultado : Resultado.primeiro
end

#encontrar(*args) ➤ Documento | Array <Documento>

Observação:

Cada argumento pode ser um ID individual, uma array de ids ou uma array agrupada. Cada array será achatada.

Encontre o(s) documento(s) correspondente(s) nos critérios para a(s) ID(s) fornecida(s).

Exemplos:

Encontrar por um ID.

criteria.find(BSON::ObjectId.new)

Encontrar por vários IDs.

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

Parâmetros:

  • *args ([ Object | Array<Object> ]...)

    O(s) ID(s) a ser(em) encontrado(s).

Retorna:



43
44
45
46
47
# Arquivo 'lib/mongoid/criteria/findable.rb', linha 43

def find(*Args)
  ids = prepare_ids_for_find(Args)
  raise_invalid se ids.algum?(&:nil?)
  for_ids(ids).execute_or_raise(ids, multi_args?(Args))
end

#for_ids(ids) ➤ Critérios

Adiciona um critério ao Criteria que especifica um ID que deve ser correspondido.

Exemplos:

Adicione um único critério de ID.

criteria.for_ids([ 1 ])

Adicione vários critérios de ID.

criteria.for_ids([ 1, 2 ])

Parâmetros:

  • ids (Array)

    A array de ids.

Retorna:



60
61
62
63
64
65
66
67
# Arquivo 'lib/mongoid/criteria/findable.rb', linha 60

def for_ids(ids)
  ids = mongoize_ids(ids)
  se ids.Tamanho > 1
    enviar(id_finder, { _id: { "$in" => ids }})
  mais
    enviar(id_finder, { _id: ids.primeiro })
  end
end

#multiple_from_db(ids) ⇒ Array<Document>

Obtenha os documentos do mapa de identidade e, se não for encontrado, acesse o banco de dados.

Exemplos:

Obtenha os documentos do mapa ou critérios.

criteria.multiple_from_map_or_db(ids)

Parâmetros:

  • ids (Array<Object>)

    Os IDs pesquisados.

Retorna:

  • (Array <Document>)

    Os documentos encontrados.



78
79
80
81
82
# Arquivo 'lib/mongoid/criteria/findable.rb', linha 78

def multiple_from_db(ids)
  Método entradas se incorporado?
  ids = mongoize_ids(ids)
  ids.vazio? ? [] : from_database(ids)
end