Módulo: Mongoid::CollectionConfigurable::ClassMethods

Definido en:
lib/mongoid/collection_configurable.rb

Resumen del método de instancia colapsar

Detalles del método de instancia

#create_collection(force: false) ⇒ Object

Cree la colección para el modelo Mongoid invocado.

Este método no recrea las colecciones existentes.

Si el document incluye store_in macro con la clave collection_options, estas opciones se utilizan al crear la colección.

Parámetros:

  • fuerza (true | false) (por defecto: false)

    Si es verdadero, el método descartará las colecciones existentes antes de crear nuevas. Si es falso, el método solo creará una nueva colección (que no existe en la base de datos).

Aumenta:



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# Archivo 'lib/mongoid/collection_configurable.rb', línea 22

def create_collection(fuerza: false)
  si nombre_colección.¿vacío?
    # Esto es muy probablemente una clase anónima, las ignoramos.
    return
  end
  si /^system\./.¿corresponde?(nombre_colección)
    # No hacemos nada con las colecciones del sistema.
    return
  end

  Colección.descartar si fuerza
  si coll_options = Colección.database.list_collections(filtro: { nombre: nombre_colección.to_s }).primero
    propagar Errors::DropCollectionFailure.Nuevo(nombre_colección) si fuerza

    logger.debug(
      "MONGOID: La colección '#{collection_name}' ya existe " +
      "en la base de datos '#{database_name}' con opciones '#{coll_options}'."
    )

  else
    begin
      Colección.database[nombre_colección, opciones_de_almacenamiento.obtener(Opciones de colección, {})].Cree
    rescate mongo::Error::OperationFailure => e
      propagar Errors::CreateCollectionFailure.Nuevo(
        nombre_colección,
        opciones_de_almacenamiento[Opciones de colección],
        e
      )
    end
  end
end