Módulo: Mongoide::Indexable::Métodos de clase

Definido en:
lib/mongoid/indexable.rb

Colapso del resumen del método de instancia

Detalles del método de instancia

#add_indexestrue

Agregue los índices predeterminados al documento raíz si aún no existen. Actualmente, solo se usa _type.

Ejemplos:

Añadir índices internos de Mongoid.

Person.add_indexes

Devuelve:

  • (verdadero) -

    Si la operación tuvo éxito.



76
77
78
79
80
81
# Archivo 'lib/mongoid/indexable.rb', línea 76

def add_indexes
  Si ¿hereditario? && !claves de índice.¿incluir?(yo.clave discriminadora.a_sym => 1)
    index({ yo.clave discriminadora.a_sym => 1 }, unique: false, fondo: true)
  end
  true
end

#crear_índicesverdadero

Envía los comentarios de creación del índice real al controlador MongoDB

Ejemplos:

Crea los índices para la clase.

Person.create_indexes

Devuelve:

  • (verdadero) -

    Si la operación tuvo éxito.



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 no ser que especificaciones del índice

  default_options = {fondo: Config.indexación de fondo}

  especificaciones del índice.cada hacer |especulación|
    clave, opciones = especulación.clave, default_options.unir(especulación.opciones)
    Si database = opciones[:database]
      con(database: database) hacer |klass|
        klass.Colección.indexes(sesión: _sesión).crear_uno(clave, opciones.excepto(:database))
      end
    else
      Colección.indexes(sesión: _sesión).crear_uno(clave, opciones)
    end
  end y  true
end

#index(spec, options = nil) ⇒ Hash

Agrega una definición de índice para las claves simples o compuestas proporcionadas.

Ejemplos:

Crear un índice básico.

class Person
  include Mongoid::Document
  field :name, type: String
  index({ name: 1 }, { background: true })
end

Parámetros:

  • especulación (Hash)

    La especificación del índice.

  • opciones (Hash) (predeterminado: nulo)

    Las opciones de índice.

Devuelve:

  • (Hash)

    Las opciones de índice.



96
97
98
99
100
101
# Archivo 'lib/mongoid/indexable.rb', línea 96

def index(especulación, opciones = nulo)
  Especificación = Especificación.Nuevo(yo, especulación, opciones)
  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.

Ejemplos:

Obtenga la especificación del índice.

Model.index_specification(name: 1)

Parámetros:

  • index_hash (Hash)

    El par clave/dirección de índice.

  • index_name (Cadena) (predeterminado: nulo)

    El nombre del índice.

Devuelve:

  • (Especificación)

    La especificación encontrada.



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(campos: index_hash.claves, llave: index_hash)
  especificaciones del índice.detectar hacer |especulación|
    especulación == index || (index_name && index_name == especulación.Nombre)
  end
end

#remove_indexestrue

Envía los comentarios de eliminación del índice real al controlador MongoDB, pero deja _id intacto.

Ejemplos:

Eliminar los índices de la clase.

Person.remove_indexes

Devuelve:

  • (verdadero) -

    Si la operación tuvo éxito.



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
  nombres de bases de datos indexadas.cada hacer |database|
    con(database: database) hacer |klass|
      begin
        klass.Colección.indexes(sesión: _sesión).cada hacer |especulación|
          a no ser que especulación["nombre"] == "_identificación_"
            klass.Colección.indexes(sesión: _sesión).soltar uno(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::Operación fallida; end
    end
  end y  true
end