Classe: Mongoide::Contextual::Memory
- Herda:
-
Objeto
- Objeto
- Mongoid::Contexto::Memory
- Inclui:
- Enumerável, Associação::EagerLoadable, Aggregable::Memory, Queryable, Posicional
- Definido em:
- lib/mongoid/contextual/memory.rb
Visão geral
objeto de contexto usado para executar query em massa e operações de persistência em documentos que foram carregados na memória do aplicação . A interface do método desta classe é consistente com Mongoid::Contextual::Mongo.
Recolhimento do Resumo do atributo de instância
-
#documentos ➤ Objeto
Somente leitura
Retorna o valor dos documentos de atributo.
- #correspondente aos documentos na memória que correspondem ao seletor.(O) ➤ Objeto Somente leitura
-
#caminho ➤ Objeto
Somente leitura
Retorna o valor do caminho do atributo.
- #caminho O caminho atômico.(Theatomicpath.) ➤ Objeto Somente leitura
-
#raiz ➤ Objeto
Somente leitura
Retorna o valor da raiz do atributo.
- #root O documento raiz.(Documento raiz.) ➤ Objeto Somente leitura
-
#seletor ➤ Objeto
Somente leitura
Retorna o valor do seletor de atributo.
- #selector O seletor de documento raiz.(Seletor de documentos raiz.) ➤ Objeto Somente leitura
Atributos incluídos no Queryable
#collection, #collection A collection na qual fazer query., #criteria, #criteria Os critérios para o contexto., #klass, #klass O klass para os critérios.
Recolhimento do Resumo do método de instância
-
#==(outro) ➤ verdadeiro | false
Verifique se o contexto é igual ao outro objeto.
-
#delete ➤ nil (também: #delete_all)
Exclua todos os documentos no banco de dados que correspondam ao seletor.
-
#Destruir ➤ nil (também: #destroy_all)
Destrua todos os documentos no banco de banco de dados que correspondam ao seletor.
-
#distinct(campo) ➤ Array<Object>
Obtenha os valores distintos no banco de dados para o campo fornecido .
-
#cada ➤ Enumerador
Iterar sobre o contexto.
-
#existe?(id_or_ conditions = :none) ➤ true | false
Existem documentos para o contexto.
-
#quinto ➤ Documento
Obtenha o quinto documento no banco de banco de dados para o seletor de critérios.
-
#quinto! ➤ Documento
Obtenha o quinto documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
-
#first(limit = nil) ➤ Document (também: #one, #find_first)
Obtenha o primeiro documento no banco de banco de dados para o seletor dos critérios.
-
#primeiro! ➤ Documento
Obtenha o primeiro documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
-
#quarto ➤ Documento
Obtenha o quarto documento no banco de banco de dados para o seletor dos critérios.
-
#quarto! ➤ Documento
Obtenha o quarto documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
-
#inc(incs) ⇒ Enumerator
Incrementar um valor em todos os documentos.
-
#inicializar(critérios) ➤ Memória
construtor
Criar o novo no contexto da memória.
-
#last(limit = nil) ⇒ Document
Obtenha o último documento no banco de banco de dados para o seletor dos critérios.
-
#last! ⇒ Document
Obtenha o último documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
-
#comprimento ➤ inteiro (também: #size)
Obtenha o comprimento dos documentos correspondentes no contexto.
-
#limite(valor) ➤ Memória
Limita o número de documentos devolvidos.
-
#pick(*fields) ➤ Objeto | Array<Object>
Escolha os valores de campo na memória.
-
#pluck(*fields) ➤ Array<Object> | Array <Array<Object>>
Arranca os valores de campo na memória.
-
#segundo ➤ Documento
Obtenha o segundo documento no banco de banco de dados para o seletor dos critérios.
-
#segundo! ➤ Documento
Obtenha o segundo documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
-
#secondary_to_last ➤ Documento
Obtenha o penúltimo documento no banco de banco de dados para o seletor de critérios.
-
#segundo_para_último! ➤ Documento
Obtenha o penúltimo documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
-
#skip(value) ➤ Memória
Ignora o número fornecido de documentos.
-
#sort(values) ⇒ Memory
Classifica os documentos pela especificação fornecida.
-
#take(limit = nil) ⇒ Document
Pegue o número fornecido de documentos do banco de dados.
-
#take! ⇒ Document
Pegue o número fornecido de documentos do banco de banco de dados ou gere um erro se nenhum for encontrado.
-
#tally(campo) ➤ Hash
Registrar os valores de campo na memória.
-
#terceiro ➤ Documento
Obtenha o terceiro documento no banco de banco de dados para o seletor dos critérios.
-
#terceiro! ➤ Documento
Obtenha o terceiro documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
-
#terceiro_to_last ➤ Documento
Obtenha o penúltimo documento no banco de banco de dados para o seletor de critérios.
-
#terceiro_to_last! ➤ Documento
Obtenha o penúltimo documento no banco de banco de dados para o seletor do critério ou gere um erro se nenhum for encontrado.
-
#atualização(atributos = nil) ➤ nil | false
Atualize o primeiro documento correspondente atomicamente.
-
#update_all(attributes = nil) ⇒ nil | false
Atualize todos os documentos correspondentes atomicamente.
Métodos incluídos no Posicional
Métodos incluídos do Queryable
Métodos incluídos de Associação::EagerLoadable
#eager_load, #eager_loadable?, #preload
Métodos incluídos do Aggregable::Memory
#aggregates, #avg, #max, #min, #sum
Detalhes do construtor
#inicializar(critérios) ➤ Memória
Criar o novo no contexto da memória.
173 174 175 176 177 178 179 180 181 182 |
# File 'lib/mongoid/contextual/memory.rb', linha 173 def inicializar(critério) @criteria, @klass = critério, critério.classe @documents = critério.documentos.selecione fazer |doc| @root ||= doc._root @collection ||= Raiz.collection doc._matches?(critério.seletor) end apply_sorting end |
Detalhes do atributo da instância
#documents Objeto (somente leitura)
Retorna o valor dos documentos de atributo.
25 26 27 |
# File 'lib/mongoid/contextual/memory.rb', linha 25 def documentos @documents end |
#correspondente aos documentos na memória que correspondem ao seletor.(O) ➤ Objeto (somente leitura)
25 |
# File 'lib/mongoid/contextual/memory.rb', linha 25 attr_reader :documents, :path, :root, :selector |
#caminho ➤ Objeto (somente leitura)
Retorna o valor do caminho do atributo.
25 26 27 |
# File 'lib/mongoid/contextual/memory.rb', linha 25 def caminho @path end |
#caminho O caminho atômico.(Theatomicpath.) ➤ Objeto (somente leitura)
25 |
# File 'lib/mongoid/contextual/memory.rb', linha 25 attr_reader :documents, :path, :root, :selector |
#root ➤ Object (somente leitura)
Retorna o valor da raiz do atributo.
25 26 27 |
# File 'lib/mongoid/contextual/memory.rb', linha 25 def Raiz @root end |
#root O documento raiz.(Documento raiz.) ➤ Objeto (somente leitura)
25 |
# File 'lib/mongoid/contextual/memory.rb', linha 25 attr_reader :documents, :path, :root, :selector |
#seletor ➤ Objeto (somente leitura)
Retorna o valor do seletor de atributo.
25 26 27 |
# File 'lib/mongoid/contextual/memory.rb', linha 25 def seletor @selector end |
#selector O seletor de documento raiz.(Seletor de documentos raiz.) ➤ Objeto (somente leitura)
25 |
# File 'lib/mongoid/contextual/memory.rb', linha 25 attr_reader :documents, :path, :root, :selector |
Detalhes do método de instância
#==(outro) ➤ verdadeiro | false
Verifique se o contexto é igual ao outro objeto.
35 36 37 38 |
# File 'lib/mongoid/contextual/memory.rb', linha 35 def ==(Outro) Método false a menos que Outro.respond_to?(:entries) entradas == Outro.entradas end |
#delete ➤ nil Também conhecido como: delete_all
Exclua todos os documentos no banco de dados que correspondam ao seletor.
46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/mongoid/contextual/memory.rb', linha 46 def excluir Excluído = contar Removed = map fazer |doc| prepare_remove(doc) doc.enviar(:as_attributes) end a menos que Removed.vazio? collection.find(seletor).update_one( posicionalmente(seletor, "$pullAll" => { caminho => Removed }), sessão: _session ) end Excluído end |
#Destruir ➤ nil Também conhecido como: Destruir_all
Destrua todos os documentos no banco de banco de dados que correspondam ao seletor.
68 69 70 71 72 73 74 75 |
# File 'lib/mongoid/contextual/memory.rb', linha 68 def destruir Excluído = contar cada fazer |doc| documentos.delete_one(doc) doc.destruir end Excluído end |
#distinct(campo) ➤ Array<Object>
Obtenha os valores distintos no banco de dados para o campo fornecido .
86 87 88 |
# File 'lib/mongoid/contextual/memory.rb', linha 86 def distinto(Campo) raspar(Campo).uniq end |
#cada ➤ Enumerador
Iterar sobre o contexto. Se for fornecido um bloco, produza um documento Mongoid para cada um, caso contrário, retorne um enumeração.
99 100 101 102 103 104 105 106 107 108 |
# File 'lib/mongoid/contextual/memory.rb', linha 99 def cada se block_given? documents_for_iteration.cada fazer |doc| rendimento(doc) end auto mais to_enum end end |
#existe?(id_or_ conditions = :none) ➤ true | false
Existem documentos para o contexto.
126 127 128 129 130 131 132 133 |
# File 'lib/mongoid/contextual/memory.rb', linha 126 def existe?(id_or_ conditions = : none) caso id_or_ conditions quando : none então algum? quando nada, false então false quando Hash então Memória.Novo(critério.ONDE(id_or_ conditions)).existe? mais Memória.Novo(critério.ONDE(_id: id_or_ conditions)).existe? end end |
#quinto ➤ Documento
Obtenha o quinto documento no banco de banco de dados para o seletor de critérios.
454 455 456 |
# File 'lib/mongoid/contextual/memory.rb', linha 454 def quinto modified_load([documentos.quinto]).primeiro end |
#quinto! ➤ Documento
Obtenha o quinto documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
468 469 470 |
# File 'lib/mongoid/contextual/memory.rb', linha 468 def quinto! quinto || create_document_not_Found_error end |
#first(limit = nil) undação do documento Também conhecido como: um, find_first
Obtenha o primeiro documento no banco de banco de dados para o seletor dos critérios.
143 144 145 146 147 148 149 |
# File 'lib/mongoid/contextual/memory.rb', linha 143 def primeiro(limit = nada) se limit modified_load(documentos.primeiro(limit)) mais modified_load([documentos.primeiro]).primeiro end end |
#primeiro! ➤ Documento
Obtenha o primeiro documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
163 164 165 |
# File 'lib/mongoid/contextual/memory.rb', linha 163 def primeiro! primeiro || create_document_not_Found_error end |
#quarto ➤ Documento
Obtenha o quarto documento no banco de banco de dados para o seletor dos critérios.
430 431 432 |
# File 'lib/mongoid/contextual/memory.rb', linha 430 def quarto modified_load([documentos.quarto]).primeiro end |
#quarto! ➤ Documento
Obtenha o quarto documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
444 445 446 |
# File 'lib/mongoid/contextual/memory.rb', linha 444 def quarto! quarto || create_document_not_Found_error end |
#inc(incs) ➤ Enumerador
Incrementar um valor em todos os documentos.
192 193 194 195 196 |
# File 'lib/mongoid/contextual/memory.rb', linha 192 def inc(incs) cada fazer |documento| documento.inc(incs) end end |
#last(limit = nil) ⇒ Document
Obtenha o último documento no banco de banco de dados para o seletor dos critérios.
206 207 208 209 210 211 212 |
# File 'lib/mongoid/contextual/memory.rb', linha 206 def último(limit = nada) se limit modified_load(documentos.último(limit)) mais modified_load([documentos.último]).primeiro end end |
#último! ➤ Documento
Obtenha o último documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
224 225 226 |
# File 'lib/mongoid/contextual/memory.rb', linha 224 def último! último || create_document_not_Found_error end |
#comprimento ➤ Inteiro Também conhecido como: tamanho
Obtenha o comprimento dos documentos correspondentes no contexto.
234 235 236 |
# File 'lib/mongoid/contextual/memory.rb', linha 234 def Tamanho documentos.Tamanho end |
#limite(valor) ➤ Memória
Limita o número de documentos devolvidos.
247 248 249 250 |
# File 'lib/mongoid/contextual/memory.rb', linha 247 def limit(valor) auto.limitante = valor auto end |
#pick(*fields) ➤ Objeto | Array<Object>
Escolha os valores de campo na memória.
274 275 276 277 278 |
# File 'lib/mongoid/contextual/memory.rb', linha 274 def escolher(*Campos) se doc = documentos.primeiro shard_from_doc(doc, *Campos) end end |
#pluck(*fields) ➤ Array<Object> | Array <Array<Object>>
Arranca os valores de campo na memória.
260 261 262 263 264 |
# File 'lib/mongoid/contextual/memory.rb', linha 260 def raspar(*Campos) documentos.map fazer |doc| shard_from_doc(doc, *Campos) end end |
#segundo ➤ Documento
Obtenha o segundo documento no banco de banco de dados para o seletor dos critérios.
382 383 384 |
# File 'lib/mongoid/contextual/memory.rb', linha 382 def Segundo modified_load([documentos.Segundo]).primeiro end |
#segundo! ➤ Documento
Obtenha o segundo documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
396 397 398 |
# File 'lib/mongoid/contextual/memory.rb', linha 396 def segundo! Segundo || create_document_not_Found_error end |
#secondary_to_last ➤ Documento
Obtenha o penúltimo documento no banco de banco de dados para o seletor de critérios.
478 479 480 |
# File 'lib/mongoid/contextual/memory.rb', linha 478 def segundo_to_last modified_load([documentos.segundo_to_last]).primeiro end |
#segundo_para_último! ➤ Documento
Obtenha o penúltimo documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
492 493 494 |
# File 'lib/mongoid/contextual/memory.rb', linha 492 def segundo_to_last! segundo_to_last || create_document_not_Found_error end |
#skip(value) ➤ Memória
Ignora o número fornecido de documentos.
334 335 336 337 |
# File 'lib/mongoid/contextual/memory.rb', linha 334 def ignorar(valor) auto.pular = valor auto end |
#sort(values) ⇒ Memory
Classifica os documentos pela especificação fornecida.
348 349 350 |
# File 'lib/mongoid/contextual/memory.rb', linha 348 def sort(values) in_place_sort(values) e a auto end |
#take(limit = nil) ⇒ Document
Pegue o número fornecido de documentos do banco de dados.
304 305 306 307 308 309 310 |
# File 'lib/mongoid/contextual/memory.rb', linha 304 def levar(limit = nada) se limit modified_load(documentos.levar(limit)) mais modified_load([documentos.primeiro]).primeiro end end |
#take! ⇒ Document
Pegue o número fornecido de documentos do banco de banco de dados ou gere um erro se nenhum for encontrado.
322 323 324 |
# File 'lib/mongoid/contextual/memory.rb', linha 322 def pegue! levar || create_document_not_Found_error end |
#tally(campo) ➤ Hash
Registrar os valores de campo na memória.
288 289 290 291 292 293 294 |
# File 'lib/mongoid/contextual/memory.rb', linha 288 def contagem(Campo) Método documentos.cada_com_objeto({}) fazer |d, acc| v = retrieve_value_at_path(d, Campo) acc[v] ||= 0 acc[v] += 1 end end |
#terceiro ➤ Documento
Obtenha o terceiro documento no banco de banco de dados para o seletor dos critérios.
406 407 408 |
# File 'lib/mongoid/contextual/memory.rb', linha 406 def terceiro modified_load([documentos.terceiro]).primeiro end |
#terceiro! ➤ Documento
Obtenha o terceiro documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
420 421 422 |
# File 'lib/mongoid/contextual/memory.rb', linha 420 def terceiro! terceiro || create_document_not_Found_error end |
#terceiro_to_last ➤ Documento
Obtenha o penúltimo documento no banco de banco de dados para o seletor de critérios.
502 503 504 |
# File 'lib/mongoid/contextual/memory.rb', linha 502 def terceiro_to_last modified_load([documentos.terceiro_to_last]).primeiro end |
#terceiro_to_last! ➤ Documento
Obtenha o penúltimo documento no banco de banco de dados para o seletor do critério ou gere um erro se nenhum for encontrado.
516 517 518 |
# File 'lib/mongoid/contextual/memory.rb', linha 516 def terceiro_to_last! terceiro_to_last || create_document_not_Found_error end |
#atualização(atributos = nil) ➤ nil | false
Atualize o primeiro documento correspondente atomicamente.
360 361 362 |
# File 'lib/mongoid/contextual/memory.rb', linha 360 def update(attributes = nada) update_documents(attributes, [ primeiro ]) end |
#update_all(attributes = nil) ➤ nil | false
Atualize todos os documentos correspondentes atomicamente.
372 373 374 |
# File 'lib/mongoid/contextual/memory.rb', linha 372 def update_all(attributes = nada) update_documents(attributes, entradas) end |