Módulo: Mongoid::CollectionConfigurable::ClassMethods

Definido en:
lib/mongoid/colección_configurable.rb

Colapso del resumen del método de instancia

Detalles del método de instancia

#create_collection(fuerza: falso) ⇒ Objeto

Cree la colección para el modelo Mongoid llamado.

Este método no recrea colecciones existentes.

Si el documento incluye el macro ‘store_in` con la clave `collection_options`.

these options are used when creating the collection.

Parámetros:

  • fuerza (true | false) (predeterminado: falso)

    Si es verdadero, el método eliminará las colecciones existentes antes de crear nuevas. Si es falso, el método solo creará colecciones nuevas (que no existan en la base de datos).

Aumentos:



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
53
54
55
56
# Archivo 'lib/mongoid/collection_configurable.rb', línea 24

def create_collection(fuerza: false)
  Si nombre_de_colección.¿vacío?
    # Esto es muy probablemente una clase anónima, las ignoramos.
    return
  end
  Si nombre_de_colección.coincidencia(/^system\./)
    # No hacemos nada con las colecciones del sistema.
    return
  end
  Si fuerza
    Colección.descartar
  end
  Si opciones de colección = Colección.database.listas_colecciones(filtrar: { nombre: nombre_de_colección.a_s }).primera
    Si fuerza
      propagar Errors::Fallo de recolección de caída.Nuevo(nombre_de_colección)
    else
      logger.debug(
        "MONGOID:La colección '#{collection_name} ' ya existe " +
        "en la base de datos' #{database_name} ' con opciones '#{coll_options} '."
      )
    end
  else
    begin
      Colección.database[nombre_de_colección, opciones_de_almacenamiento.Fetch(:opciones_de_colección, {})].Cree
    rescate Mongo::Error::Operación fallida => e
      propagar Errors::Fallo de creación de colección.Nuevo(
        nombre_de_colección,
        opciones_de_almacenamiento[:opciones_de_colección],
        e
      )
    end
  end
end