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(&bloco) ➤ Enumerador
Iterar sobre o contexto.
-
#existe?(id_or_ conditions = :none) ➤ true | false
Existem documentos para o contexto.
-
#quinto ➤ Documento
Obtenha o quinto document no banco de dados para o seletor de critérios.
-
#quinto! ➤ Documento
Obtenha o quinto document no 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 document no banco de dados para o seletor dos critérios.
-
#primeiro! ➤ Documento
Obtenha o primeiro document no banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
-
#quarto ➤ Documento
Obtenha o quarto document no banco de dados para o seletor dos critérios.
-
#quarto! ➤ Documento
Obtenha o quarto document no 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 document no banco de dados para o seletor dos critérios.
-
#last! ⇒ Document
Obtenha o último document no 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 document no banco de dados para o seletor dos critérios.
-
#segundo! ➤ Documento
Obtenha o segundo document no 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 document no banco de dados para o seletor de critérios.
-
#segundo_para_último! ➤ Documento
Obtenha o penúltimo document no 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 document no banco de dados para o seletor dos critérios.
-
#terceiro! ➤ Documento
Obtenha o terceiro document no 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 document no banco de dados para o seletor de critérios.
-
#terceiro_to_last! ➤ Documento
Obtenha o penúltimo document no 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
#create_pipeline, #eager_load, #eager_load_with_lookup, #eager_loadable?, #preload, #preload_for_lookup, #switch_local_and_foreign_fields?
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.
175 176 177 178 179 180 181 182 183 184 |
# File 'lib/mongoid/contextual/memory.rb', linha 175 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.
23 24 25 |
# File 'lib/mongoid/contextual/memory.rb', linha 23 def documentos @documents end |
#correspondente aos documentos na memória que correspondem ao seletor.(O) ➤ Objeto (somente leitura)
23 |
# File 'lib/mongoid/contextual/memory.rb', linha 23 attr_reader :documents, :path, :root, :selector |
#caminho ➤ Objeto (somente leitura)
Retorna o valor do caminho do atributo.
23 24 25 |
# File 'lib/mongoid/contextual/memory.rb', linha 23 def caminho @path end |
#caminho O caminho atômico.(Theatomicpath.) ➤ Objeto (somente leitura)
23 |
# File 'lib/mongoid/contextual/memory.rb', linha 23 attr_reader :documents, :path, :root, :selector |
#root ➤ Object (somente leitura)
Retorna o valor da raiz do atributo.
23 24 25 |
# File 'lib/mongoid/contextual/memory.rb', linha 23 def Raiz @root end |
#root O documento raiz.(Documento raiz.) ➤ Objeto (somente leitura)
23 |
# File 'lib/mongoid/contextual/memory.rb', linha 23 attr_reader :documents, :path, :root, :selector |
#seletor ➤ Objeto (somente leitura)
Retorna o valor do seletor de atributo.
23 24 25 |
# File 'lib/mongoid/contextual/memory.rb', linha 23 def seletor @selector end |
#selector O seletor de documento raiz.(Seletor de documentos raiz.) ➤ Objeto (somente leitura)
23 |
# File 'lib/mongoid/contextual/memory.rb', linha 23 attr_reader :documents, :path, :root, :selector |
Detalhes do método de instância
#==(outro) ➤ verdadeiro | false
Verifique se o contexto é igual ao outro objeto.
33 34 35 36 37 |
# File 'lib/mongoid/contextual/memory.rb', linha 33 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.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/mongoid/contextual/memory.rb', linha 45 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.
67 68 69 70 71 72 73 74 |
# File 'lib/mongoid/contextual/memory.rb', linha 67 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 .
85 86 87 |
# File 'lib/mongoid/contextual/memory.rb', linha 85 def distinto(Campo) raspar(Campo).uniq end |
#cada(&bloco) ➤ Enumerador
Iterar sobre o contexto. Se for fornecido um bloco, produza um documento Mongoid para cada um, caso contrário, retorne um enumeração.
98 99 100 101 102 103 104 105 |
# File 'lib/mongoid/contextual/memory.rb', linha 98 def cada(&noum: bloco ; verb: bloquear) se block_given? documents_for_iteration.cada(&noum: bloco ; verb: bloquear) auto mais to_enum end end |
#existe?(id_or_ conditions = :none) ➤ true | false
Existem documentos para o contexto.
123 124 125 126 127 128 129 130 |
# File 'lib/mongoid/contextual/memory.rb', linha 123 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 document no banco de dados para o seletor de critérios.
456 457 458 |
# File 'lib/mongoid/contextual/memory.rb', linha 456 def quinto modified_load([ documentos.quinto ]).primeiro end |
#quinto! ➤ Documento
Obtenha o quinto document no banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
470 471 472 |
# File 'lib/mongoid/contextual/memory.rb', linha 470 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 document no banco de dados para o seletor dos critérios.
140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/mongoid/contextual/memory.rb', linha 140 def primeiro(limit = nada) use_first = limit.nada? limit ||= 1 se critério.use_lookup? @criteria = critério.limit(limit) Resultado = ans_load_with_lookup mais Resultado = modified_load(documentos.primeiro(limit)) end use_first ? Resultado.primeiro : Resultado end |
#primeiro! ➤ Documento
Obtenha o primeiro document no banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
165 166 167 |
# File 'lib/mongoid/contextual/memory.rb', linha 165 def primeiro! primeiro || create_document_not_Found_error end |
#quarto ➤ Documento
Obtenha o quarto document no banco de dados para o seletor dos critérios.
432 433 434 |
# File 'lib/mongoid/contextual/memory.rb', linha 432 def quarto modified_load([ documentos.quarto ]).primeiro end |
#quarto! ➤ Documento
Obtenha o quarto document no banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
446 447 448 |
# File 'lib/mongoid/contextual/memory.rb', linha 446 def quarto! quarto || create_document_not_Found_error end |
#inc(incs) ➤ Enumerador
Incrementar um valor em todos os documentos.
194 195 196 197 198 |
# File 'lib/mongoid/contextual/memory.rb', linha 194 def inc(incs) cada fazer |documento| documento.inc(incs) end end |
#last(limit = nil) ⇒ Document
Obtenha o último document no banco de dados para o seletor dos critérios.
208 209 210 211 212 213 214 |
# File 'lib/mongoid/contextual/memory.rb', linha 208 def último(limit = nada) se limit modified_load(documentos.último(limit)) mais modified_load([ documentos.último ]).primeiro end end |
#último! ➤ Documento
Obtenha o último document no banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
226 227 228 |
# File 'lib/mongoid/contextual/memory.rb', linha 226 def último! último || create_document_not_Found_error end |
#comprimento ➤ Inteiro Também conhecido como: tamanho
Obtenha o comprimento dos documentos correspondentes no contexto.
236 237 238 |
# File 'lib/mongoid/contextual/memory.rb', linha 236 def Tamanho documentos.Tamanho end |
#limite(valor) ➤ Memória
Limita o número de documentos devolvidos.
249 250 251 252 |
# File 'lib/mongoid/contextual/memory.rb', linha 249 def limit(valor) auto.limitante = valor auto end |
#pick(*fields) ➤ Objeto | Array<Object>
Escolha os valores de campo na memória.
276 277 278 279 280 |
# File 'lib/mongoid/contextual/memory.rb', linha 276 def escolher(*Campos) Método a menos que doc = documentos.primeiro shard_from_doc(doc, *Campos) end |
#pluck(*fields) ➤ Array<Object> | Array <Array<Object>>
Arranca os valores de campo na memória.
262 263 264 265 266 |
# File 'lib/mongoid/contextual/memory.rb', linha 262 def raspar(*Campos) documentos.map fazer |doc| shard_from_doc(doc, *Campos) end end |
#segundo ➤ Documento
Obtenha o segundo document no banco de dados para o seletor dos critérios.
384 385 386 |
# File 'lib/mongoid/contextual/memory.rb', linha 384 def Segundo modified_load([ documentos.Segundo ]).primeiro end |
#segundo! ➤ Documento
Obtenha o segundo document no banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
398 399 400 |
# File 'lib/mongoid/contextual/memory.rb', linha 398 def segundo! Segundo || create_document_not_Found_error end |
#secondary_to_last ➤ Documento
Obtenha o penúltimo document no banco de dados para o seletor de critérios.
480 481 482 |
# File 'lib/mongoid/contextual/memory.rb', linha 480 def segundo_to_last modified_load([ documentos.segundo_to_last ]).primeiro end |
#segundo_para_último! ➤ Documento
Obtenha o penúltimo document no banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
494 495 496 |
# File 'lib/mongoid/contextual/memory.rb', linha 494 def segundo_to_last! segundo_to_last || create_document_not_Found_error end |
#skip(value) ➤ Memória
Ignora o número fornecido de documentos.
336 337 338 339 |
# File 'lib/mongoid/contextual/memory.rb', linha 336 def ignorar(valor) auto.pular = valor auto end |
#sort(values) ⇒ Memory
Classifica os documentos pela especificação fornecida.
350 351 352 |
# File 'lib/mongoid/contextual/memory.rb', linha 350 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.
306 307 308 309 310 311 312 |
# File 'lib/mongoid/contextual/memory.rb', linha 306 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.
324 325 326 |
# File 'lib/mongoid/contextual/memory.rb', linha 324 def pegue! levar || create_document_not_Found_error end |
#tally(campo) ➤ Hash
Registrar os valores de campo na memória.
290 291 292 293 294 295 296 |
# File 'lib/mongoid/contextual/memory.rb', linha 290 def contagem(Campo) 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 document no banco de dados para o seletor dos critérios.
408 409 410 |
# File 'lib/mongoid/contextual/memory.rb', linha 408 def terceiro modified_load([ documentos.terceiro ]).primeiro end |
#terceiro! ➤ Documento
Obtenha o terceiro document no banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
422 423 424 |
# File 'lib/mongoid/contextual/memory.rb', linha 422 def terceiro! terceiro || create_document_not_Found_error end |
#terceiro_to_last ➤ Documento
Obtenha o penúltimo document no banco de dados para o seletor de critérios.
504 505 506 |
# File 'lib/mongoid/contextual/memory.rb', linha 504 def terceiro_to_last modified_load([ documentos.terceiro_to_last ]).primeiro end |
#terceiro_to_last! ➤ Documento
Obtenha o penúltimo document no banco de dados para o seletor do critério ou gere um erro se nenhum for encontrado.
518 519 520 |
# File 'lib/mongoid/contextual/memory.rb', linha 518 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.
362 363 364 |
# File 'lib/mongoid/contextual/memory.rb', linha 362 def update(attributes = nada) update_documents(attributes, [ primeiro ]) end |
#update_all(attributes = nil) ➤ nil | false
Atualize todos os documentos correspondentes atomicamente.
374 375 376 |
# File 'lib/mongoid/contextual/memory.rb', linha 374 def update_all(attributes = nada) update_documents(attributes, entradas) end |