Módulo: Mongoid::Findable
- Estendido por:
- Encaminhável
- Definido em:
- lib/mongoid/findable.rb
Visão geral
Este módulo define os métodos de localização que estão suspensos do documento no nível da classe.
Recolhimento do Resumo do método de instância
-
#vazio? ➤ verdadeiro | false
Retorna verdadeiro se a contagem for zero.
-
#estimated_count ➤ Inteiro
Retorna uma contagem estimada de registros no banco de banco de dados.
-
#existe?(id_or_ conditions = :none) ➤ true | false
Retorna verdadeiro se houver um documento no banco de dados de dados com base nos argumentos fornecidos.
-
#find(*args, &block) ➤ Documento | Array<Document> | nada
Localiza um
Document
ou vários documentos por seus valores _id. -
#find_by(attrs = {}) {|result| ... } ➤ Documento | nada
Encontre o primeiro
Document
de acordo com as condições. -
#find_by!(attrs = {}) {|result| ... } ➤ Documento
Encontre o primeiro
Document
dadas as condições ou crie Mongoid::Errors::DocumentNotFound. -
#first(limit = nil) ➤ Document (também: #one)
Encontre o primeiro
Document
de acordo com as condições. -
#last(limit = nil) ⇒ Document
Encontre o último
Document
dadas as condições.
Detalhes do método de instância
#vazio? ➤ verdadeiro | false
Retorna verdadeiro se a contagem for zero
95 96 97 |
# Arquivo 'lib/mongoid/findable.rb', linha 95 def vazio? contar == 0 end |
#estimated_count ➤ Inteiro
Retorna uma contagem estimada de registros no banco de banco de dados.
85 86 87 |
# Arquivo 'lib/mongoid/findable.rb', linha 85 def estimated_count with_default_scope.estimated_count end |
#existe?(id_or_ conditions = :none) ➤ true | false
Retorna verdadeiro se houver um documento no banco de dados de dados com base nos argumentos fornecidos.
116 117 118 |
# Arquivo 'lib/mongoid/findable.rb', linha 116 def existe?(id_or_ conditions = : none) with_default_scope.existe?(id_or_ conditions) end |
#find(*args, &block) ➤ Documento | Array<Documento> | nada
Cada argumento pode ser um ID individual, uma array de ids ou uma array agrupada. Cada array será achatada.
Localiza um Document
ou vários documentos por seus valores _id.
Se um único argumento que não seja array for fornecido, esse argumento será interpretado como o valor _id de um documento a ser localizado. Se houver um documento correspondente no banco de banco de dados, esse documento será retornado; caso contrário, se a opção de configuração Mongoid raise_not_found_error
for true (que é o padrão), Errors::DocumentNotFound
é gerado e se raise_not_found_error
for falso, find
retorna nil
.
Se vários argumentos forem fornecidos ou um argumento de array for fornecido, a array será achatada e cada elemento de array será interpretado como o valor _id do documento a ser localizado. O Mongoid então tenta recuperar todos os documentos com os valores _id fornecidos. O valor de retorno é uma array de documentos encontrados. Cada documento aparece uma vez na array retornada, mesmo que seu _id seja fornecido várias vezes no argumento para find
. Se a opção de configuração Mongoid raise_not_found_error
for true, a exceção Errors::DocumentNotFound
será gerada se qualquer um dos _ids especificados não for encontrado no banco de banco de dados. Se a opção de configuração Mongoid raise_not_found_error
for falsa, somente os documentos encontrados serão retornados; se nenhum documento for encontrado, o valor de retorno será uma array vazia.
Observe que o MongoDB não permite que o campo _id seja uma array.
O argumento passa por conversões de tipo Mongoid usuais com base no tipo declarado para o campo _id . Por padrão, o campo _id é um BSON::ObjectId
; isso permite que strings sejam passadas para find
e as strings sejam convertidas de forma transparente em instâncias BSON::ObjectId
durante a construção da query.
Se esse método receber um bloco, ele delegará para Enumerable#find e retornará o primeiro documento daqueles encontrados pelo objeto Crieria atual para o qual o bloco retorna um valor verdadeiro. Se um bloco e ids forem fornecidos, o bloco será ignorado e os documentos para os ids fornecidos serão retornados. Se um bloco e um Proc forem fornecidos, o método delegará para Enumerable#find e usará o proc como padrão.
O método find
leva em conta o escopo padrão definido na classe do modelo, se houver.
169 170 171 172 173 174 175 176 |
# Arquivo 'lib/mongoid/findable.rb', linha 169 def find(*Args, &noum: bloco ; verb: bloquear) empty_or_proc = Args.vazio? || (Args.Tamanho == 1 && Args.primeiro.is_a?(Proc)) se block_given? && empty_or_proc with_default_scope.find(*Args, &noum: bloco ; verb: bloquear) mais with_default_scope.find(*Args) end end |
#find_by(attrs = {}) {|result| ... } ➤ Documento | nada
Encontre o primeiro Document
de acordo com as condições. Se um documento correspondente não for encontrado e Mongoid.raise_not_Found_error for verdadeiro, ele criará Mongoid::Errors::DocumentNotFound, retorne nulo nil caso contrário.
e Mongoid.raise_not_Found_error é verdadeiro.
192 193 194 195 196 197 198 199 |
# Arquivo 'lib/mongoid/findable.rb', linha 192 def find_by(attrs = {}) Resultado = ONDE(attrs).find_first se Resultado.nada? && Mongoid.create_not_Found_error aumentar(Errors::DocumentNotFound.Novo(auto, attrs)) end rendimento(Resultado) se Resultado && block_given? Resultado end |
#find_by!(attrs = {}) {|result| ... } ➤ Documento
Encontre o primeiro Document
dadas as condições ou crie Mongoid::Errors::DocumentNotFound
212 213 214 215 216 217 |
# Arquivo 'lib/mongoid/findable.rb', linha 212 def find_by!(attrs = {}) Resultado = ONDE(attrs).find_first aumentar(Errors::DocumentNotFound.Novo(auto, attrs)) a menos que Resultado rendimento(Resultado) se Resultado && block_given? Resultado end |
#first(limit = nil) ➤ Documento também conhecido como: um
Encontre o primeiro Document
de acordo com as condições.
227 228 229 |
# Arquivo 'lib/mongoid/findable.rb', linha 227 def primeiro(limit = nada) with_default_scope.primeiro(limit) end |
#last(limit = nil) ⇒ Document
Encontre o último Document
dadas as condições.
240 241 242 |
# Arquivo 'lib/mongoid/findable.rb', linha 240 def último(limit = nada) with_default_scope.último(limit) end |