Saltar al contenido principal

Crear colecciones en MongoDB: Métodos manuales y automáticos

Aprende cómo se crean las colecciones en MongoDB, cuándo definirlas explícitamente y las principales opciones de configuración.
Actualizado 23 jun 2025  · 5 min de lectura

Cuando trabajes con MongoDB, especialmente si eres un programador procedente de una base de datos relacional, una de las primeras cosas que notarás es lo flexible que puede ser el diseño del esquema.

Las colecciones en MongoDB no necesitan crearse explícitamente de antemano, pero hay ocasiones en las que tiene sentido definirlas explícitamente y configurarlas con cuidado.

En este artículo, veremos cómo y cuándo puedes querer crear una colección en MongoDB, algunas opciones de configuración clave a tener en cuenta y algunos ejemplos de código en JS y C# (mi favorito). 

No te preocupes, tenemos mucha paridad de funciones entre los controladores, así que mucho de lo que veas hoy aquí será posible en <inserta el idioma que prefieras>.

Si eres nuevo en las bases de datos NoSQL, considera empezar con una Introducción a NoSQL.

¿Qué es una colección MongoDB?

Antes de ver cómo crear colecciones, hablemos brevemente de lo que es una colección. 

Si tienes conocimientos de SQL, puede que estés acostumbrado a oír hablar de tablas, filas y columnas. En MongoDB, los términos son ligeramente diferentes. En lugar de tablas, tenemos colecciones, y en lugar de filas, tenemos documentos con campos y no columnas. 

Uno de los superpoderes de MongoDB es su esquema dinámico. Eso significa que no necesitas crear una colección manualmente antes de utilizarla. Si insertas un documento en una colección que todavía no existe, MongoDB lo creará automáticamente. Por ejemplo, si ejecutas 

db.movies.insertOne({ title: "The Matrix", year: 1999 });

Intentará insertar un único documento de la película "Matrix" en la colección movies. Si ya existe, el documento se añadirá a la colección. Si no lo hace, la colección movies se creará antes de añadir el nuevo documento.

También puedes añadir muchos documentos a la vez, utilizando insertMany en lugar de insertOne.

Cuándo definir explícitamente las colecciones de MongoDB

Aunque puedes dejar que MongoDB se encargue de la creación de colecciones automáticamente, hay buenas razones para definir las colecciones con antelación, especialmente en escenarios de producción. Crear colecciones explícitamente te da la oportunidad de:

  • Configura colecciones limitadas para registro o almacenamiento en caché.
  • Establece reglas de validación para aplicar restricciones en tus esquemas.
  • Aplica determinados índices por defecto, como el tiempo de vida (TTL). Estos índices sobre un campo de fecha eliminarán automáticamente los documentos de tu colección en función del tiempo que especifiques.
  • Optimiza las cargas de trabajo de escritura pesada mediante el pre-dimensionamiento de las colecciones.

Así es como se crea una colecciónen el terminal de MongoDB:

db.createCollection("auditLogs", {
  capped: true,
  size: 10485760, // 10 MB
  max: 1000
});

O con validación:

db.createCollection("users", {
  validator: {
    $jsonSchema: {
      bsonType: "object",
      required: ["email", "createdAt"],
      properties: {
        email: {
          bsonType: "string",
          pattern: "^.+@.+$"
        },
        createdAt: {
          bsonType: "date"
        }
      }
    }
  }
});

Aunque MongoDB admite un esquema flexible, es posible que quieras añadir reglas de validación, como campos obligatorios, o especificar propiedades en determinados campos, como tipos de datos o formato para correos electrónicos, como se ha visto anteriormente. Si quieres asegurarte de que tus documentos siguen un esquema concreto. 

La aplicación de esquemas te resultará familiar si tienes conocimientos de SQL, e incluso si no los tienes, a veces tus aplicaciones en producción necesitan tener documentos con una forma predecible. ¡Así que la validación es excelente para esto!

Creación de colecciones MongoDB con el controlador C#

En una aplicación C#, también puedes crear colecciones explícitamente utilizando el controlador MongoDB. Aunque no es necesario para las operaciones básicas, aquí es donde puedes establecer opciones avanzadas mediante programación.

var options = new CreateCollectionOptions
{
    Capped = true,
    MaxSize = 10485760, // 10 MB
    MaxDocuments = 1000
};

await database.CreateCollectionAsync("auditLogs", options);

Para añadir un validador:

var validator = new BsonDocument
{
    { "$jsonSchema", new BsonDocument
        {
            { "bsonType", "object" },
            { "required", new BsonArray { "email", "createdAt" } },
            { "properties", new BsonDocument
                {
                    { "email", new BsonDocument
                        {
                            { "bsonType", "string" },
                            { "pattern", "^.+@.+$" }
                        }
                    },
                    { "createdAt", new BsonDocument
                        {
                            { "bsonType", "date" }
                        }
                    }
                }
            }
        }
    }
};

var collectionOptions = new CreateCollectionOptions<BsonDocument>
{
    Validator = new BsonDocumentFilterDefinition<BsonDocument>(validator)
};

await database.CreateCollectionAsync("users", collectionOptions);

Para los programadores de Python, el tutorial Introducción a MongoDB y Python es un gran recurso.

Opciones clave de configuración de las colecciones que debes conocer

Al crear colecciones explícitamente, aquí tienes algunas opciones que te puede interesar conocer:

  • capped: crea una colección de tamaño fijo
  • size: tamaño máximo en bytes de una colección limitada
  • max: número máximo de documentos permitidos
  • validator: Objeto JSON en sintaxis de esquema que define la validación del esquema
  • expireAfterSeconds: se utiliza con índices TTL para gestionar la autoeliminación de documentos

También puedes aplicar índices en el momento de la creación time o poco después. MongoDB no creará índices automáticamente a menos que sean necesarios para _id.

Los índices en MongoDB te permiten mejorar el rendimiento de los campos a los que accedes con más frecuencia. Guardarán esos valores en caché en la memoria, lo que significa que no habrá que llamar al disco duro para recuperarlos, lo que puede ahorrar mucho tiempo y rendimiento al acceder a ellos de forma habitual.

Buenas prácticas para definir colecciones MongoDB

Aquí tienes algunas pautas que te ayudarán a decidir cuándo definir explícitamente las colecciones:

  • Creación implícita para pruebas rápidas de concepto o desarrollo local, o cuando el usuario final puede generar el contenido dinámicamente
  • Creación explícita para cuando quieras aplicar validación o aplicar ajustes de indexación o rendimiento

Conclusión

MongoDB es conocido por su esquema flexible que nos da flexibilidad en cómo estructuramos nuestros datos, y eso incluye cómo creamos y gestionamos colecciones. Mientras que la creación implícita es rápida y cómoda, las definiciones explícitas de colecciones desbloquean potentes funciones como la validación de esquemas, el comportamiento capado y el ajuste del rendimiento.

Como siempre, MongoDB Atlas facilita aún más la gestión de colecciones con herramientas basadas en la interfaz de usuario, automatización y perspectivas de rendimiento integradas. Y si trabajas en .NET, el controlador C# te cubre con modelos de tipos fuertes y API fluidas.

Al considerar las mejores prácticas para definir las colecciones de MongoDB, también puede ser beneficioso comprender losprincipios fundamentales del diseño de bases de datos.

¡Feliz codificación! ¡Que tus colecciones sean rápidas, válidas y estén bien indexadas!

Conviértete en Ingeniero de Datos

Demuestra tus habilidades como ingeniero de datos preparado para el trabajo.
Acelerar mi carrera en el sector de los datos

Preguntas frecuentes

¿Cuál es la diferencia entre la creación implícita y explícita de colecciones en MongoDB?

  • Creación implícita: MongoDB crea automáticamente una colección cuando insertas un documento en una colección inexistente. Esto es útil para la creación rápida de prototipos o el desarrollo.
  • Creación explícita: Defines manualmente una colección antes de utilizarla, a menudo para configurar opciones avanzadas como reglas de validación, tamaño máximo o indexación. Se recomienda para entornos de producción. 

¿Cuándo debo crear explícitamente una colección en lugar de dejar que MongoDB la cree automáticamente?

Debes crear explícitamente una colección cuando: validación de esquemas, colecciones capadas, optimizaciones de rendimiento e índices por defecto.

¿Cómo aplico un esquema en MongoDB si no tiene esquema?

MongoDB admite la validación del esquema JSON, que te permite definir reglas para la estructura del documento.

¿Qué son los cobros limitados y cuándo debo utilizarlos?

Las colecciones limitadas son colecciones de tamaño fijo que sobrescriben automáticamente los documentos antiguos cuando están llenas. 

¿Cómo creo una colección con un índice TTL (Time-To-Live)?

Los índices TTL eliminan automáticamente los documentos después de un tiempo determinado. Primero, crea la colección y, después, añade el índice.


Luce Carter's photo
Author
Luce Carter
LinkedIn

Luce Carter es Senior Developer Advocate en MongoDB, MVP de Microsoft, Contentful Dev Hero, autora de Beginning MongoDB Atlas with .NET, y amante del código, el sol y el aprendizaje.

Temas

¡Aprende más sobre MongoDB con estos cursos!

Curso

Introduction to MongoDB in Python

4 h
21.8K
Learn to manipulate and analyze flexibly structured data with MongoDB.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

Clasificación en machine learning: Introducción

Aprende sobre la clasificación en machine learning viendo qué es, cómo se utiliza y algunos ejemplos de algoritmos de clasificación.
Zoumana Keita 's photo

Zoumana Keita

14 min

blog

8 modelos de machine learning explicados en 20 minutos

Descubre todo lo que necesitas saber sobre los tipos de modelos de machine learning, incluyendo para qué se utilizan y ejemplos de cómo ponerlos en práctica.
Natassha Selvaraj's photo

Natassha Selvaraj

15 min

Top MLOps Tools

blog

25 Herramientas MLOps que debes conocer en 2025

Descubre las mejores herramientas MLOps para el seguimiento de experimentos, la gestión de metadatos de modelos, la orquestación de flujos de trabajo, el versionado de datos y canalizaciones, el despliegue y servicio de modelos, y la supervisión de modelos en producción.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Tutorial

Cómo instalar y configurar MySQL en Docker

Aprende a instalar y configurar la base de datos MySQL dentro de contenedores Docker. El tutorial incluye conceptos como conectarse a servidores MySQL, ejecutar clientes MySQL para conectarse a contenedores, etc.
Bex Tuychiev's photo

Bex Tuychiev

12 min

Tutorial

Aprendizaje automático de datos categóricos con el tutorial de Python

Aprenda los trucos más comunes para manejar datos categóricos y preprocesarlos para construir modelos de aprendizaje automático.
Moez Ali's photo

Moez Ali

14 min

Tutorial

Cómo crear modelos de datos en Excel: Guía completa

Creamos modelos de datos formateando los datos, creando relaciones, utilizando Power Query y aprovechando Power Pivot para una integración y análisis de datos sin fisuras.
Vikash Singh's photo

Vikash Singh

13 min

Ver másVer más