Módulo: Mongoid::Shardable::ClassMethods

Definido en:
lib/mongoid/shardable.rb

Colapso del resumen del método de instancia

Detalles del método de instancia

#shard_key(*args) ⇒ Objeto

Especifica una clave de fragmento con los campos especificados.

Ejemplos:

Especifique la clave del fragmento.


class Person
  include Mongoid::Document
  field :first_name, :type => String
  field :last_name, :type => String

  shard_key first_name: 1, last_name: 1
end


120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# Archivo 'lib/mongoid/shardable.rb', línea 120

def clave de fragmento(*args)
  a no ser que args.primera.is_a?(Picadillo)
    # Sintaxis abreviada
    Si args.última.is_a?(Picadillo)
      propagar ArgumentError, 'Lasintaxis abreviada shard_key no permite opciones'
    end

    especulación = Picadillo[args.map hacer |Nombre|
      [Nombre, 1]
    end]

    return clave de fragmento(especulación)
  end

  Si args.longitud > 2
    propagar ArgumentError, 'La sintaxis completa de shard_key requiere 1 o 2 argumentos'
  end

  especulación, opciones = args

  especulación = Picadillo[especulación.map hacer |Nombre, valor|
    Si valor.is_a?(Símbolo)
      valor = valor.a_s
    end
    [nombre_del_campo_de_base_de_datos(Nombre).a_sym, valor]
  end]

  yo.campos de clave de fragmento = especulación.claves
  yo.shard_config = {
    llave: especulación.freeze,
    opciones: (opciones || {}).dup.freeze,
  }.freeze
end