Módulo: Mongoid::Indexable::ClassMethods
- Definido en:
- lib/mongoid/indexable.rb
Resumen del método de instancia colapsar
-
#add_indexes ⇒ true
Añade los índices por defecto al documento principal si aún no existen.
-
#create_indexes ⇒ true
Enviar los comentarios reales de creación de índices al controlador de MongoDB.
-
#index(spec, options = nil) ⇒ Hash
Agrega una definición de índice para las claves individuales o compuestas proporcionadas.
-
#index_specification(index_hash, index_name = nil) ⇒ Especificación
Obtén una especificación de índice para la clave proporcionada.
-
#remove_indexes ⇒ true
Envía los comentarios reales de eliminación de índices al controlador de MongoDB, pero deja _id sin modificar.
Detalles del método de instancia
#add_indexes ⇒ true
Agregue los índices por defecto al documento raíz si aún no existen. Actualmente, esto es solo _type.
72 73 74 75 76 77 |
# Archivo 'lib/mongoid/indexable.rb', línea 72 def add_indexes si ¿hereditaria? && !índices_claves.incluir?(discriminador_clave.to_sym => 1) index({ discriminador_clave.to_sym => 1 }, unique: false, segundo plano: true) end true end |
#create_indexes ⇒ true
Enviar los comentarios reales de creación de índices al controlador de MongoDB
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# Archivo 'lib/mongoid/indexable.rb', línea 24 def create_indexes return a menos que especificaciones_del_índice = { segundo plano: Config.indexación de fondo } especificaciones_del_índice.cada hacer |especificación| llave, = especificación.llave, .fusionar(especificación.) si database = [:database] con(database: database) hacer |klass| klass.Colección.indexes(sesión: _sesión).create_one(llave, .excepto(:database)) end else Colección.indexes(sesión: _sesión).create_one(llave, ) end end y true end |
#index(spec, options = nil) ⇒ Hash
Agrega una definición de índice para las claves individuales o compuestas proporcionadas.
92 93 94 95 96 97 98 99 100 101 102 103 |
# Archivo 'lib/mongoid/indexable.rb', línea 92 def index(especificación, = nulo) Especificación = Especificación.Nuevo(sí mismo, especificación, ) # la prueba de igualdad para las instancias de Indexable::Specification no # considerar cualquier opción, lo que significa que los nombres no se comparan. Esto significa # que un índice con diferentes opciones a otro, y un diferente # nombre, será ignorado en silencio a menos que haya declaraciones de índices duplicados # están permitidos. return a menos que Mongoid.permitir_declaraciones_de_índice_duplicadas || !especificaciones_del_índice.incluir?(Especificación) especificaciones_del_índice.push(Especificación) end |
#index_specification(index_hash, index_name = nil) ⇒ Specification
Obtén una especificación de índice para la clave proporcionada.
114 115 116 117 118 |
# Archivo 'lib/mongoid/indexable.rb', línea 114 def index_specification(index_hash, index_name = nulo) especificaciones_del_índice.detectar hacer |especificación| especificación.superficial_match?(clave: index_hash, nombre: index_name) end end |
#remove_indexes ⇒ true
Envía los comentarios reales de eliminación de índices al controlador de MongoDB, pero deja _id sin modificar.
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# Archivo 'lib/mongoid/indexable.rb', línea 48 def remove_indexes indexed_database_names.cada hacer |database| con(database: database) hacer |klass| klass.Colección.indexes(sesión: _sesión).cada hacer |especificación| Next si especificación['nombre'] == '_id_' klass.Colección.indexes(sesión: _sesión).drop_one(especificación['key']) logger.información( "MONGOID: Índice eliminado '#{spec['nombre']}' en la colección " + "'#{klass.collection.name}'' en la base de datos '#{database}'." ) end rescate mongo::Error::OperationFailure end end y true end |