MongoDB Matriz de objetos usando insert() con ejemplo

⚡ Resumen inteligente

MongoDB El ejemplo "Array of Objects using insert()" muestra cómo agregar varios documentos a una colección en una sola operación. Almacena un array de registros de empleados, inserta arrays dentro de un documento y muestra los resultados de forma clara mediante la función de impresión JSON.

  • 📥 Insertar a granel: El método insert() agrega una matriz de documentos a una colección en una sola operación eficiente.
  • 🧾 Modelo de documento: Cada documento es un conjunto de pares campo-valor, y MongoDB agrega automáticamente un _id único.
  • 🗂️ Matrices integradas: Una matriz también puede existir como un campo dentro de un documento, keeping valores relacionados juntos.
  • 🔁 Métodos modernos: insertOne() e insertMany() son las alternativas actuales y más claras al método insert() anterior.
  • 🖨️ Readable Salida: El comando forEach(printjson) imprime cada documento en un formato JSON limpio y fácil de leer.

¿Qué es el método insert() en MongoDB?

El método insert() en MongoDB Agrega uno o más documentos a una colección. Un documento es un conjunto de pares campo-valor almacenados en BSON, una forma binaria de JSON. Cuando se pasa un solo documento, `insert()` almacena ese único registro; cuando se pasa una matriz de documentos, los almacena todos en una sola operación, lo cual es más rápido que insertarlos uno por uno.

El método se ejecuta sobre una colección específica utilizando el patrón db.collection.insert(). Si la colección de destino aún no existe, MongoDB Se crea automáticamente durante la primera inserción. Cada documento también recibe un campo _id único si no se proporciona uno, de modo que cada registro pueda identificarse posteriormente.

Aunque insert() todavía funciona, más reciente MongoDB Las versiones ofrecen las funciones insertOne() e insertMany() como alternativas más claras. Los ejemplos que se muestran a continuación utilizan insert() para agregar una matriz de documentos de empleados y luego muestran los resultados en un formato JSON legible.

Agregar una matriz de documentos

El comando "insertar" también se puede utilizar para insertar varios documentos en una colección a la vez. El siguiente ejemplo de código se puede utilizar para insertar varios documentos a la vez.

El siguiente ejemplo muestra cómo se puede hacer esto:

Paso 1) Créar un JavaScript variable llamada myEmployee para contener la matriz de documentos

Paso 2) Agregue los documentos requeridos con el nombre del campo y los valores a la variable

Paso 3) Utilice el comando insertar para insertar la matriz de documentos en la colección

var myEmployee=
	[
		{
			"Employeeid" : 1,
			"EmployeeName" : "Smith"
		},
		{
			"Employeeid"   : 2,
			"EmployeeName" : "Mohan"
		},
		{
			"Employeeid"   : 3,
			"EmployeeName" : "Joe"
		},
	];

	db.Employee.insert(myEmployee);

Si el comando se ejecuta correctamente, se mostrará la siguiente salida

MongoDB Matriz de objetos usando insert()

El resultado muestra que esos 3 documentos se agregaron a la colección.

Cómo insertar una matriz dentro de un documento

Además de insertar una serie de documentos separados, MongoDB Te permite almacenar una matriz como un campo dentro de un solo documento. Esto es útil cuando un registro contiene naturalmente una lista de valores, como un empleado que tiene varias habilidades o un estudiante matriculado en varios cursos. Porque MongoDB Utiliza un modelo de documento flexible; la matriz reside directamente dentro del objeto en lugar de en una tabla separada, lo que mantiene juntos los datos relacionados.

El siguiente ejemplo inserta un documento de empleado que contiene un campo de tipo matriz llamado Habilidades:

db.Employee.insert(
   {
      "Employeeid" : 4,
      "EmployeeName" : "Alan",
      "Skills" : [ "MongoDB", "Node.js", "Express" ]
   }
);

Las partes de este documento funcionan de la siguiente manera:

  • ID de empleado y Nombre de empleado son pares ordinarios de campo y valor.
  • Habilidades Es un campo de matriz que contiene tres valores de cadena entre corchetes.
  • El documento completo, incluyendo la matriz incrustada, se almacena en una única operación de inserción.

Después de agregar el registro, puede confirmar la matriz incrustada con una consulta de búsqueda que imprima el resultado en JSON:

db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)

El resultado muestra la matriz de Habilidades anidada dentro del documento del empleado. LaterPuedes añadir nuevos valores al array con el operador $push o leer un único elemento por su índice. Almacenar los valores conectados de esta forma mantiene cada documento independiente, reduce la necesidad de realizar uniones entre colecciones y facilita la lectura y el mantenimiento de los datos.

insert() vs insertOne() vs insertMany()

MongoDB Ofrece tres métodos relacionados para añadir datos. La siguiente tabla los compara para que puedas elegir el más adecuado:

Método Propósito Ejemplo
insertar() Método heredado que agrega un solo documento o una matriz de documentos. Aún funciona, pero está obsoleto en los controladores más recientes. db.Empleado.insertar(miEmpleado)
insertarUno() Agrega exactamente un documento y devuelve su _id insertado. Preferible para registros individuales. db.Employee.insertOne({ … })
insertarMuchos() Agrega una matriz de documentos en una sola llamada y devuelve todos los _ids insertados. Preferible para inserciones masivas. db.Employee.insertMany([ { … }, { … } ])

Para proyectos nuevos, utilice `insertOne()` e `insertMany()`, ya que ofrecen una intención más clara y una mejor notificación de errores. El método `insert()` se mantiene disponible principalmente para garantizar la compatibilidad con versiones anteriores de tutoriales y scripts.

Impresión en formato JSON

JSON es un formato llamado JavaNotación de objetos de script, y es solo una forma de almacenar información de una manera organizada y fácil de leer. En nuestros ejemplos posteriores, utilizaremos la función de impresión JSON para ver el resultado en un mejor formato.

Veamos un ejemplo de impresión en formato JSON.

db.Employee.find().forEach(printjson)

Code Explicación:

  1. El primer cambio consiste en añadir la función `forEach()` a la función `find()`. Esto garantiza que se recorra explícitamente cada documento de la colección. De esta forma, se tiene mayor control sobre las acciones que se pueden realizar con cada uno de los documentos.
  2. El segundo cambio es colocar el comando printjson en la declaración forEach. Esto hará que cada documento de la colección se muestre en formato JSON.

Si el comando se ejecuta correctamente, se mostrará la siguiente salida

Salida:

Impresión en formato JSON

El resultado muestra claramente que todos los documentos están impresos en estilo JSON.

Preguntas Frecuentes

Sí. Pasar un array de documentos a la función `insert()` los añade todos en una sola operación. Esta inserción masiva es más rápida que llamar a `insert()` por separado para cada documento, aunque actualmente se prefiere el método `insertMany()`.

Sí. Si un documento no incluye un campo _id, MongoDB Genera automáticamente un ObjectId único durante la inserción, de modo que cada registro almacenado pueda identificarse y recuperarse posteriormente.

Por defecto, MongoDB Realiza una inserción ordenada. Agrega los documentos en el orden especificado y se detiene ante el primer error, dejando los documentos restantes sin insertar. Si se establece `ordered` en `false`, la inserción continúa incluso después de que se produzcan errores.

Sí. Las herramientas de IA pueden convertir una descripción en lenguaje natural de tus datos en instrucciones insertOne() o insertMany(), incluyendo matrices incrustadas. Revisa siempre los campos y tipos de datos generados antes de ejecutarlos en una base de datos.

La IA puede sugerir si se deben incrustar matrices dentro de un documento o hacer referencia a colecciones separadas, según los patrones de consulta. Esto ayuda a los principiantes a modelar datos de manera eficiente, evitando duplicaciones innecesarias o anidamientos demasiado profundos.

Resumir este post con: