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 especificatrue
, también debe establecer un tamaño máximo en elsize
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. Elsize
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 elsize
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 elsize
argumento es suficiente para contener el número de documentos especificados conmax
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.