Menú de navegación

Knowledge center Programación Entornos de Programación

Existen fundamentalmente dos métodos para insertar documentos:

  • insertOne(): para insertar los documentos de uno en uno.
  • insertMany(): para insertar un lote de documentos de una vez.

Inserción simple

Para insertar un documento de forma individual el método a usar es insertOne(). El siguiente ejemplo crea en la colección albumes, de la base de datos musica un documento con el álbum "Revolver" de los Beatles:

> db.albumes.insertOne({     "nombre" : "Revolver",     "autor" : "The Beatles",     "año" : 1966  })

Como vemos no hemos incluido el campo _id, sin embargo, MongoDB lo añadirá por nosotros. Podemos verlo al buscar el documento con findOne():

> db.albumes.findOne() {   "_id" : ObjectId("5f856f714f02f31ac68acf3e"),   "nombre" : "Revolver",   "autor" : "The Beatles",   "año" : 1966  } 
Comando insertOne

Inserción múltiple

Para añadir varios documentos de una sola vez a una colección usaremos insertMany().

Para inserciones múltiples esta es la forma más eficiente ya que se envía la información de una única vez. Este método recibe como argumento un array de documentos. El siguiente ejemplo introduce otros tres álbumes de los Beatles de una sola vez:

insertMany()
> db.albumes.insertMany([   {     "nombre" : "Abbey Road",     "autor" : "The Beatles",     "año" : 1969   },   {     "nombre" : "Let It Be",     "autor" : "The Beatles",     "año" : 1970   },   {     "nombre" : "Help!",     "autor" : "The Beatles",     "año" : 1965   } ])
salida
{      "acknowledged" : true,      "insertedIds" : [           ObjectId("5f8580104f02f31ac68acf3f"),           ObjectId("5f8580104f02f31ac68acf40"),           ObjectId("5f8580104f02f31ac68acf41")     ] }
find()
> db.albumes.find() { "_id" : ObjectId("5f85824b4f02f31ac68acf43"), "nombre" : "Revolver", "autor" : "The Beatles", "año" : 1966 } { "_id" : ObjectId("5f85824e4f02f31ac68acf44"), "nombre" : "Abbey Road", "autor" : "The Beatles", "año" : 1969 } { "_id" : ObjectId("5f85824e4f02f31ac68acf45"), "nombre" : "Let It Be", "autor" : "The Beatles", "año" : 1970 } { "_id" : ObjectId("5f85824e4f02f31ac68acf46"), "nombre" : "Help!", "autor" : "The Beatles", "año" : 1965 } 


Existe un límite de 100.000 documentos por actualización masiva desde la versión 3.6. No obstante, la mayoría de los drivers pueden gestionar este límite y hacerlo transparente al usuario.

Si vas a hacer una carga masiva de datos usa la herramienta mongoimport si no tienes que hacer ninguna modificación a los datos.

Si tienes que modificar algún dato del fichero durante la carga es mejor hacerla con un programa a medida.

El método insertMany() tiene un segundo parámetro opcional que consiste en un documento con opciones. Este documento-parámetro puede tener dos claves, las dos opcionales también:

  1. writeConcern: este parámetro se utiliza para indicar a MongoDB un nivel de confirmación respecto a si el dato ha sido guardado correctamente. Normalmente, solo lo usaremos en instalaciones con sharding o conjuntos de réplicas. Más información aquí.
  2. ordered: este parámetro puede tomar los valores true (valor por defecto) o false. Le indica a MongoDB si es necesario insertar los documentos en el mismo orden en el que se envían o puede modificarse. Si el valor es true, en caso de fallo en algún documento se abortará el resto de la carga. Si se establece a false se omitirá el error y continuará la carga.

Validaciones en la inserción

MongoDB realiza las siguientes validaciones básicas a la hora de insertar un documento en una colección:

  • La estructura del documento, que debe tener un formato JSON válido.
  • La presencia del campo _id. Si no se especifica MongoDB lo añadirá por nosotros.
  • El tamaño de un documento en formato BSON no debe ser superior a 16 MB.
Antes de la versión 3.0 el método de inserción insert() era la forma principal para añadir documentos.

A partir de esa versión se introdujo una nueva API CRUD con una semántica más clara. Aunque por razones de retrocompatibilidadSe entiende por retrocompatibilidad o compatibilidad hacia atrás (backward compatibility) a la capacidad de una aplicación para permitir la ejecución o uso de versiones anteriores desde la versión actual. se mantiene el soporte al método insert(), se desaconseja su uso y es probable que desaparezca en el futuro.
Comando insertMany
 

Esta píldora formativa está extraída del Curso online de Introducción a MongoDB.

¿Te gusta el contenido de esta píldora de conocimiento?

No pierdas tu oportunidad y ¡continúa aprendiendo!

ADR Formación

ADR Formación utiliza cookies propias y de terceros para fines analíticos anónimos, guardar las preferencias que selecciones y para el funcionamiento general de la página.

Puedes aceptar todas las cookies pulsando el botón "Aceptar" o configurarlas o rechazar su uso pulsando el botón "Configurar".

Puedes obtener más información y volver a configurar tus preferencias en cualquier momento en la Política de cookies