Classe: Mongoide::Contextual::Mongo
- Herda:
-
Objeto
- Objeto
- Mongoid::Contexto::Mongo
- Estendido por:
- Encaminhável
- Inclui:
- Enumerável, Associação::EagerLoadable, Atomic, Aggregable::Mongo, Queryable
- Definido em:
- lib/mongoid/contextual/mongo.rb,
lib/mongoid/contextual/mongo/documents_loader.rb
Visão geral
objeto de contexto usado para executar operações de query e persistência em massa em documentos que persistem no banco de banco de dados e não foram carregados na memória do aplicação .
Definido sob namespace
Classes: DocumentsLoader
Colapsode resumo constante
- OPÇÕES =
Constante de opções.
[ :hint, :limit, :skip, :sort, :batch_size, :max_scan, :max_time_ms, :snapshot, :comentário, :read, :cursor_type, :collation ].congelar
Constantes incluídas do Atomic
Recolhimento do Resumo do atributo de instância
-
#documents_loader ➤ Objeto
Somente leitura
Retorna o valor do atributo documents_loader.
-
#view ➤ Hash
Somente leitura
Execute uma explicação sobre os critérios.
- #view A visualização da collection mongo .(TheMongocollectionview.) ➤ 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
-
#count(options = {}, &block) ➤ Inteiro
Obtenha o número de documentos correspondentes à query.
-
#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.
-
#estimated_count(options = {}) ➤ Inteiro
Obtenha o número estimado de documentos correspondentes à query.
-
#existe?(id_or_ conditions = :none) ➤ true | false
Existem documentos para o contexto.
-
#quinto ➤ Documento | nada
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.
-
#find_first ➤ Objeto
privado
Retorne o primeiro resultado sem aplicar classificação.
-
#find_one_and_delete ➤ Documento
Execute o comando localizar e modificar, usado para o $findAndModify do MongoDB.
-
#find_one_and_replace(substituição, opções = {}) ➤ Documento
Execute o comando localizar e modificar, usado para o $findAndModify do MongoDB.
-
#find_one_and_update(update, options = {}) ➤ Document
Execute o comando localizar e modificar, usado para o $findAndModify do MongoDB.
-
#first(limit = nil) ➤ Documento | nil (também: #one)
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 | nada
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.
-
#initialize(critérios) ➤ mongo
construtor
Crie o novo contexto do mongo .
-
#last(limit = nil) ⇒ Document | nil
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)
Retorna o número de documentos no banco de dados de dados que correspondem ao seletor de consulta.
-
#limite(valor) ➤ mongo
Limita o número de documentos retornados do banco de banco de dados.
-
#load_async ➤ Objeto
privado
Agende uma tarefa para carregar documentos para o contexto.
-
#map_reduce(mapear, reduzir) ➤ MapReduce
Inicie uma operação de mapeamento/redução a partir do contexto.
-
#pick(*fields) ➤ Objeto | Array<Object>
Escolha os valores de campo único no banco de banco de dados.
-
#pluck(*fields) ➤ Array<Object> | Array <Array<Object>>
Arraste o(s) valor(es) de campo do banco de dados.
-
#segundo ➤ Documento | nada
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.
-
#segundo_para_último ➤ Documento | nada
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) ➤ mongo
Ignora o número fornecido de documentos.
-
#sort(values = nil, &block) ⇒ Mongo
Classifica os documentos pela especificação fornecida.
-
#take(limit = nil) ➤ Documento | Array<Document>
Pegue o número fornecido de documentos do banco de dados.
-
#take! ⇒ Document
Pegue um documento do banco de dados e gere um erro se não houver nenhum.
-
#tally(campo) ➤ Hash
Obtenha um hash de contagens para os valores de um único campo.
-
#terceiro ➤ Documento | nada
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 | nada
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, opts = {}) ➤ nil | false
Atualize o primeiro documento correspondente atomicamente.
-
#update_all(attributes = nil, opts = {}) ⇒ nil | false
Atualize todos os documentos correspondentes atomicamente.
Métodos incluídos do Queryable
Métodos incluídos de Associação::EagerLoadable
#eager_load, #eager_loadable?, #preload
Métodos incluídos do Atomic
#add_atomic_pull, #add_atomic_unset, #atomic_array_add_to_sets, #atomic_array_pulls, #atomic_array_pushes, #atomic_attribute_name, #atomic_delete_modifier, #atomic_insert_modifier, #atomic_path, #atomic_paths, #atomic_position, #atomic_pulls, #atomic_pushes, #atomic_sets, #atomic_unsets, #atomic_updates, #delayed_atomic_pulls, #delayed_atomic_sets, #delayed_atomic_unsets, #marca_as_destroyed, #primaged_destroys, #process_lagaged_destroys
Métodos incluídos do Aggregable::Mongo
#aggregates, #avg, #max, #min, #sum
Detalhes do construtor
#initialize(critérios) ➤ mongo
Crie o novo contexto do mongo . Isso delega operações ao driver subjacente.
270 271 272 273 274 275 276 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 270 def inicializar(critério) @criteria, @klass = critério, critério.classe @collection = @klass.collection critério.enviar(:merge_type_selection) @view = collection.find(critério.seletor, sessão: _session) end |
Detalhes do atributo da instância
#documents_loader ➤ Object (somente leitura)
Retorna o valor do atributo documents_loader.
54 55 56 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 54 def documents_loader @documents_loader end |
#view ➤ Hash (somente leitura)
Execute uma explicação sobre os critérios.
42 43 44 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 42 def vista @view end |
#view A visualização da collection mongo .(TheMongocollectionview.) ➤ Objeto (somente leitura)
42 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 42 attr_reader :view |
Detalhes do método de instância
#count(options = {}, &block) ➤ Inteiro
Obtenha o número de documentos correspondentes à query.
73 74 75 76 77 78 79 80 81 82 83 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 73 def contar( = {}, &noum: bloco ; verb: bloquear) Método super(&noum: bloco ; verb: bloquear) se block_given? se valid_for_count_documents? vista.count_documents() mais # TODO: Remova isto quando removermos a API for_js obsoleta. # https://jira.mongodb.org/browse/MONGOID-5681 vista.contar() end end |
#delete ➤ nil Também conhecido como: delete_all
Exclua todos os documentos no banco de dados que correspondam ao seletor.
114 115 116 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 114 def excluir vista.delete_many.delete_count end |
#Destruir ➤ nil Também conhecido como: Destruir_all
Destrua todos os documentos no banco de banco de dados que correspondam ao seletor.
125 126 127 128 129 130 131 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 125 def destruir cada.injetar(0) fazer |contar, doc| doc.destruir contar += 1 se acknowledgement_write? contar end end |
#distinct(campo) ➤ Array<Object>
Obtenha os valores distintos no banco de dados para o campo fornecido .
142 143 144 145 146 147 148 149 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 142 def distinto(Campo) name = classe.Clean_localized_field_names(Campo) vista.distinto(name).map fazer |valor| is_translation = "#{name}_translations" == Campo.to_s recursive_demongoize(name, valor, is_translation) end 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.
160 161 162 163 164 165 166 167 168 169 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 160 def cada(&noum: bloco ; verb: bloquear) se block_given? documents_for_iteration.cada fazer |doc| rendimento_documento(doc, &noum: bloco ; verb: bloquear) end auto mais to_enum end end |
#estimated_count(options = {}) ➤ Inteiro
Obtenha o número estimado de documentos correspondentes à query.
Ao contrário da contagem, estimated_count não usa um bloco porque não é Tradicionalmente definido (com um bloco) em Enumarable como a contagem.
97 98 99 100 101 102 103 104 105 106 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 97 def estimated_count( = {}) a menos que auto.critério.seletor.vazio? se classe.default_scoping? aumentar Mongoid::Errors::InvalidEstimatedCountScoping.Novo(auto.classe) mais aumentar Mongoid::Errors::InvalidEstimatedCountCriteria.Novo(auto.classe) end end vista.estimated_document_count() end |
#existe?(id_or_ conditions = :none) ➤ true | false
Não usamos contagem aqui, pois o mongo não usa índices de árvore b contados.
Existem documentos para o contexto.
190 191 192 193 194 195 196 197 198 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 190 def existe?(id_or_ conditions = : none) Método false se auto.vista.limit == 0 caso id_or_ conditions quando : none então !!(vista.projeção(_id: 1).limit(1).primeiro) quando nada, false então false quando Hash então mongo.Novo(critério.ONDE(id_or_ conditions)).existe? mais mongo.Novo(critério.ONDE(_id: id_or_ conditions)).existe? end end |
#quinto ➤ Documento | nada
Obtenha o quinto documento no banco de banco de dados para o seletor de critérios.
699 700 701 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 699 def quinto retrieve_nth(4) 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.
713 714 715 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 713 def quinto! quinto || create_document_not_Found_error end |
#find_first ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retornar o primeiro resultado sem aplicar classificação
256 257 258 259 260 261 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 256 def find_first se bruto_doc = vista.primeiro doc = Factory.from_db(classe, bruto_doc, critério) modified_load([doc]).primeiro end end |
#find_one_and_delete ➤ Documento
Execute o comando localizar e modificar, usado para o $findAndModify do MongoDB. Isso exclui o documento encontrado.
247 248 249 250 251 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 247 def find_one_and_delete se doc = vista.find_one_and_delete Factory.from_db(classe, doc) end end |
#find_one_and_replace(substituição, opções = {}) ➤ Documento
Execute o comando localizar e modificar, usado para o $findAndModify do MongoDB.
234 235 236 237 238 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 234 def find_one_and_replace(substituição, = {}) se doc = vista.find_one_and_replace(substituição, ) Factory.from_db(classe, doc) end end |
#find_one_and_update(update, options = {}) ⇒ Document
Execute o comando localizar e modificar, usado para o $findAndModify do MongoDB.
214 215 216 217 218 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 214 def find_one_and_update(update, = {}) se doc = vista.find_one_and_update(update, ) Factory.from_db(classe, doc) end end |
#first(limit = nil) ➤ Documento | nil Também conhecido como: um
Adicionar automaticamente uma classificação no _id quando nenhuma outra classificação está definida nos critérios tem o potencial de causar problemas de desempenho ruins. Se você tiver um desempenho ruim inesperado ao usar #first ou #last e não tiver nenhuma classificação definida nos critérios, use #take em vez disso. Esteja ciente de que #take não garante o pedido.
Obtenha o primeiro documento no banco de banco de dados para o seletor dos critérios.
550 551 552 553 554 555 556 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 550 def primeiro(limit = nada) se limit.nada? retrieve_nth(0) mais retrieve_nth_with_limit(0, limit) end end |
#primeiro! ➤ Documento
Adicionar automaticamente uma classificação no _id quando nenhuma outra classificação está definida nos critérios tem o potencial de causar problemas de desempenho ruins. Se você tiver um desempenho ruim inesperado ao usar o #first! ou #last! e não tiver nenhuma classificação definida nos critérios, use #take! no lugar. Esteja ciente de que #take! não garante o pedido.
Obtenha o primeiro documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
575 576 577 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 575 def primeiro! primeiro || create_document_not_Found_error end |
#quarto ➤ Documento | nada
Obtenha o quarto documento no banco de banco de dados para o seletor dos critérios.
675 676 677 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 675 def quarto retrieve_nth(3) 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.
689 690 691 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 689 def quarto! quarto || create_document_not_Found_error end |
#last(limit = nil) ⇒ Document | nil
Adicionar automaticamente uma classificação no _id quando nenhuma outra classificação está definida nos critérios tem o potencial de causar problemas de desempenho ruins. Se você tiver um desempenho ruim inesperado ao usar #first ou #last e não tiver nenhuma classificação definida nos critérios, use #take em vez disso. Esteja ciente de que #take não garante o pedido.
Obtenha o último documento no banco de banco de dados para o seletor dos critérios.
593 594 595 596 597 598 599 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 593 def último(limit = nada) se limit.nada? retrieve_nth_to_last(0) mais retrieve_nth_to_last_with_limit(0, limit) end end |
#último! ➤ Documento
Adicionar automaticamente uma classificação no _id quando nenhuma outra classificação está definida nos critérios tem o potencial de causar problemas de desempenho ruins. Se você tiver um desempenho ruim inesperado ao usar o #first! ou #last! e não tiver nenhuma classificação definida nos critérios, use #take! no lugar. Esteja ciente de que #take! não garante o pedido.
Obtenha o último documento no banco de banco de dados para o seletor dos critérios ou gere um erro se nenhum for encontrado.
617 618 619 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 617 def último! último || create_document_not_Found_error end |
#comprimento ➤ Inteiro Também conhecido como: tamanho
Retorna o número de documentos no banco de dados de dados que correspondem ao seletor de consulta.
287 288 289 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 287 def Tamanho auto.contar end |
#limite(valor) ➤ mongo
Limita o número de documentos retornados do banco de banco de dados.
300 301 302 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 300 def limit(valor) @view = vista.limit(valor) e a auto end |
#load_async ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Agende uma tarefa para carregar documentos para o contexto.
Dependendo da configuração do Mongoid, a tarefa agendada pode ser executada imediatamente na conversa do chamador ou pode ser agendada para uma execução assíncrona.
776 777 778 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 776 def load_async @documents_loader ||= DocumentsLoader.Novo(vista, classe, critério) end |
#map_reduce(mapear, reduzir) ➤ MapReduce
Inicie uma operação de mapeamento/redução a partir do contexto.
313 314 315 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 313 def map_reduce(map, reduzir) Redução de mapa.Novo(collection, critério, map, reduzir) end |
#pick(*fields) ➤ Objeto | Array<Object>
Escolha os valores de campo único no banco de banco de dados.
361 362 363 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 361 def escolher(*Campos) limit(1).raspar(*Campos).primeiro end |
#pluck(*fields) ➤ Array<Object> | Array <Array<Object>>
Arrancar o(s) valor(es) de campo do banco de dados de dados. Retorna um resultado para cada documento encontrado no banco de banco de dados para o contexto. Os resultados são normalizados de acordo com seus tipos de campo Mongoid. Observe que os resultados podem incluir duplicatas e valores nulos.
333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 333 def raspar(*Campos) # Vários campos podem mapear para o mesmo nome de campo. Por exemplo, podar # um campo e seu mapa de campo _translations para o mesmo campo no banco de banco de dados. # por isso precisamos manter o controle dos campos solicitados. normalized_field_names = [] normalized_select = Campos.injetar({}) fazer |hash, f| db_fn = classe.database_field_name(f) normalized_field_names.push(db_fn) hash[classe.Clean_localized_field_names(f)] = true hash end vista.projeção(normalized_select).reduzir([]) fazer |colhidas, doc| values = normalized_field_names.map fazer |n| extract_value(doc, n) end colhidas << (values.Tamanho == 1 ? values.primeiro : values) end end |
#segundo ➤ Documento | nada
Obtenha o segundo documento no banco de banco de dados para o seletor dos critérios.
627 628 629 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 627 def Segundo retrieve_nth(1) 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.
641 642 643 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 641 def segundo! Segundo || create_document_not_Found_error end |
#segundo_para_último ➤ Documento | nada
Obtenha o penúltimo documento no banco de banco de dados para o seletor de critérios.
é encontrado.
725 726 727 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 725 def segundo_to_last retrieve_nth_to_last(1) 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.
739 740 741 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 739 def segundo_to_last! segundo_to_last || create_document_not_Found_error end |
#skip(value) ➤ mongo
Ignora o número fornecido de documentos.
480 481 482 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 480 def ignorar(valor) @view = vista.ignorar(valor) e a auto end |
#sort(values = nil, &block) ⇒ Mongo
Classifica os documentos pela especificação fornecida.
493 494 495 496 497 498 499 500 501 502 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 493 def sort(values = nada, &noum: bloco ; verb: bloquear) se block_given? super(&noum: bloco ; verb: bloquear) mais # atualize os critérios @criteria = critério.order_by(values) apply_option(:sort) auto end end |
#take(limit = nil) ⇒ Document | Array<Document>
Pegue o número fornecido de documentos do banco de dados.
374 375 376 377 378 379 380 381 382 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 374 def levar(limit = nada) se limit limit(limit).to_a mais # Faça to_a primeiro para que o método Mongo#first não seja usado e o # resultado não classificado. limit(1).to_a.primeiro end end |
#take! ⇒ Document
Pegue um documento do banco de dados e gere um erro se não houver nenhum.
393 394 395 396 397 398 399 400 401 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 393 def pegue! # Faça to_a primeiro para que o método Mongo#first não seja usado e o # resultado não classificado. se fst = limit(1).to_a.primeiro fst mais aumentar Errors::DocumentNotFound.Novo(classe, nada, nada) end end |
#tally(campo) ➤ Hash
Obtenha um hash de contagens para os valores de um único campo. Por exemplo, se os seguintes documentos estivessem no banco de dados:
{ _id: 1, age: 21 }
{ _id: 2, age: 21 }
{ _id: 3, age: 22 }
Model.tally("age")
daria o seguinte resultado:
{ 21 => 2, 22 => 1 }
Ao contar um campo dentro de uma array ou associação embeds_many:
{ _id: 1, array: [ { x: 1 }, { x: 2 } ] }
{ _id: 2, array: [ { x: 1 }, { x: 2 } ] }
{ _id: 3, array: [ { x: 1 }, { x: 3 } ] }
Model.tally("array.x")
As chaves do hash resultante são arrays:
{ [ 1, 2 ] => 2, [ 1, 3 ] => 1 }
Observe que, se registrar um elemento em uma matriz de hashes e a chave não existir em alguns dos hashes, a contagem não incluirá essas chaves nulas no hash resultante:
{ _id: 1, array: [ { x: 1 }, { x: 2 }, { y: 3 } ] }
Model.tally("array.x")
# => { [ 1, 2 ] => 1 }
440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 440 def contagem(Campo) name = classe.Clean_localized_field_names(Campo) fld = classe.traverse_association_tree(name) gasoduto = [ { "$group" => { _id: "$#{nome}", conta: { "$sum": 1 } } } ] pipeline.unshift("$match" => visualizar.filtro) a menos que vejao.filtro.em branco? collection.agregado(pipeline).reduzir({}) fazer |registros, doc| is_translation = "#{name}_translations" == campo.to_s valor = documento["_id"] chave = se valor.is_a?(Array) valid.mapa do |v| demongoize_with_field(fld, v, is_translation) end outra demongoize_with_field(fld, valid, is_translation) end # O único momento em que uma chave já existirá no hash de registros # é quando os valores são armazenados de forma diferente no banco de banco de dados, mas #mongoize para o mesmo valor. Um bom exemplo de quando isso acontece # é ao usar campos localizados. Embora a consulta do servidor não agrupe # hashes que tenham outros valores em idiomas diferentes, o valor desmongoizado é apenas a tradução na locale atual, # que pode ser o mesmo em vários desses hashes desiguais. talries[key] ||= 0 talries[key] += doc["counts"] talries end end |
#terceiro ➤ Documento | nada
Obtenha o terceiro documento no banco de banco de dados para o seletor dos critérios.
651 652 653 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 651 def terceiro retrieve_nth(2) 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.
665 666 667 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 665 def terceiro! terceiro || create_document_not_Found_error end |
#terceiro_to_last ➤ Documento | nada
Obtenha o penúltimo documento no banco de banco de dados para o seletor de critérios.
é encontrado.
751 752 753 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 751 def terceiro_to_last retrieve_nth_to_last(2) 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.
765 766 767 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 765 def terceiro_to_last! terceiro_to_last || create_document_not_Found_error end |
#atualização(atributos = nil, opts = {}) ➤ nil | false
Atualize o primeiro documento correspondente atomicamente.
516 517 518 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 516 def update(attributes = nada, opciona = {}) update_documents(attributes, :update_one, opciona) end |
#update_all(attributes = nil, opts = {}) ➤ nil | false
Atualize todos os documentos correspondentes atomicamente.
532 533 534 |
# Arquivo 'lib/mongoid/contextual/mongo.rb', linha 532 def update_all(attributes = nada, opciona = {}) update_documents(attributes, :update_many, opciona) end |