Módulo: Mongoid::Shardable::ClassMethods

Definido en:
lib/mongoid/shardable.rb

Resumen del método de instancia colapsar

Detalles del método de instancia

#shard_key(*args) ⇒ Objeto

Especifica una clave de partición con el(los) campo(s) especificado(s).

Ejemplos:

Especifica la clave de partición.


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 shard_key(*args)
  a menos que args.primero.is_a?(Picadillo)
    # Sintaxis abreviada
    si args.último.is_a?(Picadillo)
      propagar ArgumentError, 'La sintaxis abreviada shard_key no permite opciones'
    end

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

    return shard_key(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.to_s
    end
    [database_field_name(Nombre).to_sym, Valor]
  end]

  sí mismo.shard_key_fields = especulación.claves
  sí mismo.shard_config = {
    clave: especulación.freeze,
    opciones: (opciones || {}).dup.freeze,
  }.freeze
end