sql >> Base de Datos >  >> NoSQL >> MongoDB

Crear una colección en MongoDB

Cuando crea una base de datos en MongoDB, su base de datos es básicamente un contenedor vacío al que puede agregar una o más colecciones.

Una colección es análoga a una tabla en bases de datos relacionales.

En bases de datos relacionales, puede usar CREATE TABLE para crear cada tabla que desee en la base de datos.

Pero MongoDB no es una base de datos relacional y almacena sus datos como documentos. Cada documento se almacena en una colección.

Este artículo le muestra cómo crear una colección en MongoDB.

Dos opciones

Tiene dos opciones para crear colecciones en MongoDB:

  • implícito
  • Explícito

Aquí hay un ejemplo de cada uno.

Crear una colección:implícitamente

Puede crear una colección implícitamente simplemente agregando un documento a una colección inexistente. Cuando hace esto, la colección se crea si aún no existe.

Este es un ejemplo de creación implícita de una colección:

db.pets.insert({ name: "Fetch" })

Eso crea una colección llamada pets e inserta un documento en él.

En realidad, solo crea la colección si aún no existe. Si ya existe, simplemente inserta el documento en la colección existente de ese nombre.

Básicamente, la sintaxis es así:

db.<collection>.insert()

Donde <collection> es el nombre de la colección.

Crear una colección:explícitamente

También puede crear colecciones explícitamente con db.createCollection() método. Este método te permite especificar varias opciones, como establecer el tamaño máximo o las reglas de validación de la documentación.

Esto es algo análogo a CREATE TABLE declaración en SQL. Habiendo dicho eso, MongoDB no requiere que especifique columnas, tipos de datos, etc., como necesitaría especificar con CREATE TABLE declaración cuando se utiliza una base de datos relacional.

Aquí hay un ejemplo del uso de db.createCollection() método para crear una colección:

db.createCollection("employees")

Resultado:

{ "ok" : 1 } 

En este ejemplo, no especifiqué ninguna opción. Por lo tanto, no hubo un beneficio real de crearlo así en comparación con crearlo implícitamente (como en el ejemplo anterior).

Sin embargo, si desea especificar opciones para su colección, crearla explícitamente es el camino a seguir.

Aquí hay un ejemplo de cómo especificar algunas opciones al crear una colección:

db.createCollection(
    "products", 
    { 
        capped : true, 
        size : 7500500, 
        max : 7000 
    } 
)

Resultado:

{ "ok" : 1 } 

Aquí hay una explicación de las opciones que proporcioné en este ejemplo:

  • El capped El argumento le permite especificar si el tamaño de la colección debe tener un tope o no (es decir, no permitir que crezca más allá de un cierto tamaño). Si especifica true , también debe establecer un tamaño máximo en el size campo.
  • El size El argumento establece un tamaño máximo en bytes para una colección limitada. Una vez que una colección limitada alcanza su tamaño máximo, MongoDB elimina los documentos más antiguos para dejar espacio para los nuevos documentos. El size el campo es obligatorio para las colecciones limitadas y se ignora para otras colecciones.
  • El max El argumento le permite especificar el número máximo de documentos permitidos en la colección limitada. Si una colección limitada alcanza el size límite antes de que alcance el número máximo de documentos, MongoDB elimina los documentos antiguos. Por lo tanto, asegúrese de que el size argumento es suficiente para contener el número de documentos especificados con max argumento.

Estas son tres de las diversas opciones que puede especificar con db.createCollection() método.

Sintaxis y más detalles

La sintaxis completa (a partir de este escrito) se ve así:

db.createCollection( <name>,
   {
     capped: <boolean>,
     autoIndexId: <boolean>,
     size: <number>,
     max: <number>,
     storageEngine: <document>,
     validator: <document>,
     validationLevel: <string>,
     validationAction: <string>,
     indexOptionDefaults: <document>,
     viewOn: <string>,
     pipeline: <pipeline>,
     collation: <document>,
     writeConcern: <document>
   }
)

Ver db.createCollection() de la documentación oficial de MongoDB para obtener una explicación detallada de cada opción.