Módulo: Mongoid::Shardable
Overview
Este módulo contiene el comportamiento para agregar campos de clave de fragmento a las actualizaciones.
Definido bajo Namespace
Modules: ClassMethods
Resumen del método de instancia colapsar
-
#shard_key_field_value(campo, prefer_persisted:) ⇒ Objeto
privado
Devuelve el valor de la clave de partición nombrada.
-
#shard_key_fields ⇒ arreglo<String>
Obtenga los campos de la clave de partición.
-
#shard_key_selector(prefer_persisted: false) ⇒ Hash
privado
Retorna el selector que coincidiría con las claves de partición definidas.
-
#shard_key_selector_in_db ⇒ Hash
privado
Devuelve el selector que coincidiría con la versión existente de este documento en la base de datos.
Detalles del método de instancia
#shard_key_field_value(campo, prefer_persisted:) ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el valor de la clave de fragmento especificada. Si el campo identifica un documento incrustado, la clave se analizará y evaluará recursivamente. Si "prefer_persisted" es verdadero, se devolverá el último valor persistido en la base de datos, independientemente del valor actual del atributo.
96 97 98 99 100 101 102 103 104 105 |
# Archivo 'lib/mongoid/shardable.rb', línea 96 def valor del campo de clave de fragmento(Campo, prefer_persisted:) si Campo.incluir?(".") relación, restante = Campo.división(".", 2) enviar(relación)&.valor del campo de clave de fragmento(restante, prefer_persisted: prefer_persisted) elsif prefer_persisted && !nuevo_registro? attribute_was(Campo) else enviar(Campo) end end |
#shard_key_fields ⇒ arreglo<String>
Refactorizado a partir del uso de delegado para mejorar el rendimiento de carga de clases.
Obtenga los campos de la clave de partición.
47 48 49 |
# Archivo 'lib/mongoid/shardable.rb', línea 47 def shard_key_fields sí mismo.clase.shard_key_fields end |
#shard_key_selector(prefer_persisted: false) ⇒ Hash
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el selector que coincidiría con las claves de partición definidas. Si ‘prefer_persisted` es falso (por defecto), se emplean los valores actuales de las claves de partición especificados; de lo contrario, se intentará emplear cualquier valor que se haya guardado más recientemente.
63 64 65 66 67 |
# Archivo 'lib/mongoid/shardable.rb', línea 63 def selector_de_clave_shard(prefer_persisted: false) shard_key_fields.each_with_object({}) hacer |Campo, selector| selector[Campo.to_s] = valor del campo de clave de fragmento(Campo.to_s, prefer_persisted: prefer_persisted) end end |
#shard_key_selector_in_db ⇒ Hash
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el selector que coincidiría con la versión existente de este documento en la base de datos.
Si el documento no se persiste, este método usa los valores actuales de los campos de las claves de partición. Si el documento se guarda, este método utiliza los valores recuperados de la base de datos.
79 80 81 |
# Archivo 'lib/mongoid/shardable.rb', línea 79 def shard_key_selector_in_db selector_de_clave_shard(prefer_persisted: true) end |