Módulo: Mongoide::Indexable::Métodos de clase
- 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.
-
#crear_índices ⇒ verdadero
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
Obtenga una especificación de índice para la clave proporcionada.
-
#eliminar_índices ⇒ verdadero
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.
76 77 78 79 80 81 |
# Archivo 'lib/mongoid/indexable.rb', línea 76 def add_indexes si ¿hereditaria? && !índices_claves.incluir?(sí mismo.discriminador_clave.to_sym => 1) index({ sí mismo.discriminador_clave.to_sym => 1 }, unique: false, segundo plano: true) end true end |
#create_indexes ⇒ true
Envía los comentarios de creación del índice real al controlador MongoDB
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# Archivo 'lib/mongoid/indexable.rb', línea 27 def create_indexes return a menos que especificaciones del índice = {segundo plano: Config.indexación de fondo} especificaciones del índice.cada hacer |especulación| llave, = especulación.llave, .fusionar(especulación.) si database = [:database] con(database: database) hacer |klass| klass.Colección.indexes(sesión: _sesión).crear_uno(llave, .excepto(:database)) end else Colección.indexes(sesión: _sesión).crear_uno(llave, ) end end y true end |
#index(spec, options = nil) ⇒ Hash
Agrega una definición de índice para las claves individuales o compuestas proporcionadas.
96 97 98 99 100 101 |
# Archivo 'lib/mongoid/indexable.rb', línea 96 def index(especulación, = nulo) Especificación = Especificación.Nuevo(sí mismo, especulación, ) si !especificaciones del índice.incluir?(Especificación) especificaciones del índice.push(Especificación) end end |
#index_specification(index_hash, index_name = nil) ⇒ Specification
Obtenga una especificación de índice para la clave proporcionada.
112 113 114 115 116 117 |
# Archivo 'lib/mongoid/indexable.rb', línea 112 def especificación_del_índice(index_hash, index_name = nulo) index = Estructura abierta.Nuevo(campo: index_hash.claves, clave: index_hash) especificaciones del índice.detectar hacer |especulación| especulación == index || (index_name && index_name == especulación.Nombre) end end |
#remove_indexes ⇒ true
Envía los comentarios reales de eliminación de índices al controlador de MongoDB, pero deja _id sin modificar.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# Archivo 'lib/mongoid/indexable.rb', línea 51 def remove_indexes indexed_database_names.cada hacer |database| con(database: database) hacer |klass| begin klass.Colección.indexes(sesión: _sesión).cada hacer |especulación| a menos que especulación["nombre"] == "_id_" klass.Colección.indexes(sesión: _sesión).drop_one(especulación["llave"]) logger.información( "MONGOID: Se eliminó el índice'#{spec["name"]} ' en la colección " + "'#{klass.collection.name}'' en la base de datos '#{database}'." ) end end rescate Mongo::Error::OperationFailure; end end end y true end |