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
-
#algum? ➤ verdadeiro | false
Retornar verdadeiro se algum document existir nos critérios.
-
#count ⇒ Integer
Retorna uma contagem de registros no banco de banco de dados.
-
#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
Documentou vários documentos por seus valores _id. -
#find_by(attrs = {}) {|result| ... } ➤ Documento | nada
Encontre o primeiro
Documentde acordo com as condições. -
#find_by!(attrs = {}) {|result| ... } ➤ Documento
Encontre o primeiro
Documentdadas as condições ou crie Mongoid::Errors::DocumentNotFound. -
#first(limit = nil) ➤ Document (também: #one)
Encontre o primeiro
Documentde acordo com as condições. -
#last(limit = nil) ⇒ Document
Encontre o último
Documentdadas as condições. -
#muitos? ➤ verdadeiro | false
Retornar verdadeiro se existir mais de um document nos critérios.
-
#um? ➤ verdadeiro | false
Retornar verdadeiro se somente um document existir nos critérios.
Detalhes do método de instância
#algum? ➤ verdadeiro | false
Retornar verdadeiro se algum document existir nos critérios.
124 125 126 |
# Arquivo 'lib/mongoid/findable.rb', linha 124 def algum? limit(1).contar > 0 end |
#count ⇒ Integer
Retorna uma contagem de registros no banco de banco de dados. Se quiser especificar condições, use onde.
73 74 75 |
# Arquivo 'lib/mongoid/findable.rb', linha 73 def contar with_default_scope.contar end |
#vazio? ➤ verdadeiro | false
Retorna verdadeiro se a contagem for zero
93 94 95 |
# Arquivo 'lib/mongoid/findable.rb', linha 93 def vazio? contar == 0 end |
#estimated_count ➤ Inteiro
Retorna uma contagem estimada de registros no banco de banco de dados.
83 84 85 |
# Arquivo 'lib/mongoid/findable.rb', linha 83 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.
114 115 116 |
# Arquivo 'lib/mongoid/findable.rb', linha 114 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 document daqueles encontrados pelo objeto Criteria atual para o qual o bloco retornará um valor de verdade. Se um bloco e ids forem fornecidos, o bloco será ignorado e os document 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.
197 198 199 200 201 202 203 204 |
# Arquivo 'lib/mongoid/findable.rb', linha 197 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.
220 221 222 223 224 225 226 |
# Arquivo 'lib/mongoid/findable.rb', linha 220 def find_by(attrs = {}) Resultado = ONDE(attrs).find_first aumentar(Errors::DocumentNotFound.Novo(auto, attrs)) se Resultado.nada? && Mongoid.create_not_Found_error 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
239 240 241 242 243 244 245 |
# Arquivo 'lib/mongoid/findable.rb', linha 239 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.
255 256 257 |
# Arquivo 'lib/mongoid/findable.rb', linha 255 def primeiro(limit = nada) with_default_scope.primeiro(limit) end |
#last(limit = nil) ⇒ Document
Encontre o último Document dadas as condições.
268 269 270 |
# Arquivo 'lib/mongoid/findable.rb', linha 268 def último(limit = nada) with_default_scope.último(limit) end |
#muitos? ➤ verdadeiro | false
Retornar verdadeiro se existir mais de um document nos critérios.
144 145 146 |
# Arquivo 'lib/mongoid/findable.rb', linha 144 def muitos? limit(2).contar > 1 end |
#um? ➤ verdadeiro | false
Retornar verdadeiro se somente um document existir nos critérios.
134 135 136 |
# Arquivo 'lib/mongoid/findable.rb', linha 134 def um? limit(2).contar == 1 end |