Módulo: Mongoid::Shardable
Visão geral
Este módulo contém o comportamento para adicionar campos de chave de shard às atualizações.
Definido sob namespace
Módulos: Métodos de classe
Recolhimento do Resumo do método de instância
-
#shard_key_field_value(campo, preferencial_persisted:) ➤ Objeto
privado
Retorna o valor da chave de shard nomeada.
-
#shard_key_fields ➤ Array<String>
Obtenha os campos de chave de fragmento.
-
#shard_key_selector(prefer_persisted: false) ➤ Hash
privado
Retorna o seletor que corresponderia às chaves de shard definidas.
-
#shard_key_selector_in_db ➤ Hash
privado
Retorna o seletor que corresponderia à versão existente deste documento no banco de dados.
Detalhes do método de instância
#shard_key_field_value(campo, preferencial_persisted:) ➤ 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.
Retorna o valor da chave de shard nomeada. Se o campo identificar um documento incorporado, a chave será analisada e avaliada recursivamente. Se 'prefer_persisted' for verdadeiro, o último valor persistido no banco de banco de dados será retornado, independentemente de qual seja o valor atual do atributo.
96 97 98 99 100 101 102 103 104 105 |
# Arquivo 'lib/mongoid/shardable.rb', linha 96 def shard_key_field_value(Campo, prefer_persisted:) se Campo.incluir?(".") relação, restante = Campo.dividir(".", 2) enviar(relação)&.shard_key_field_value(restante, prefer_persisted: prefer_persisted) elsif prefer_persisted && !new_record? Atributo_was(Campo) mais enviar(Campo) end end |
#shard_key_fields ➤ Array<String>
Refatorado do uso do delegado para o desempenho da carga de classe.
Obtenha os campos de chave de fragmento.
47 48 49 |
# Arquivo 'lib/mongoid/shardable.rb', linha 47 def shard_key_fields auto.classe.shard_key_fields end |
#shard_key_selector(prefer_persisted: false) ➤ Hash
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.
Retorna o seletor que corresponderia às chaves de shard definidas. Se 'prefer_persisted' for falso (o padrão), ele usará os valores atuais das chaves de shard especificadas, caso contrário, tentará usar qualquer valor que tenha sido persistido mais recentemente.
63 64 65 66 67 |
# Arquivo 'lib/mongoid/shardable.rb', linha 63 def shard_key_selector(prefer_persisted: false) shard_key_fields.cada_com_objeto({}) fazer |Campo, seletor| seletor[Campo.to_s] = shard_key_field_value(Campo.to_s, prefer_persisted: prefer_persisted) end end |
#shard_key_selector_in_db ➤ Hash
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.
Retorna o seletor que corresponderia à versão existente deste documento no banco de dados.
Se o documento não for persistente, esse método usará os valores atuais dos campos de chave de fragmento. Se o documento for persistente, esse método usará os valores recuperados do banco de banco de dados.
79 80 81 |
# Arquivo 'lib/mongoid/shardable.rb', linha 79 def shard_key_selector_in_db shard_key_selector(prefer_persisted: true) end |