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

Aumenta:

  • (ArgumentError)


117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# Archivo 'lib/mongoid/shardable.rb', línea 117

def shard_key(*args)
  a menos que args.primero.is_a?(encriptada)
    # Sintaxis abreviada
    propagar ArgumentError, 'La sintaxis abreviada shard_key no permite opciones' si args.último.is_a?(encriptada)

    especificación = encriptada[args.map hacer |Nombre|
      [ Nombre, 1 ]
    end]

    return shard_key(especificación)
  end

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

  especificación, opciones = args

  especificación = encriptada[especificación.map hacer |Nombre, Valor|
    Valor = Valor.to_s si Valor.is_a?(Símbolo)
    [ database_field_name(Nombre).to_sym, Valor ]
  end]

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