Existen fundamentalmente dos métodos para insertar documentos:
insertOne()
: para insertar los documentos de uno en uno.insertMany()
: para insertar varios documentos en un mismo comando.Para insertar un documento de forma individual el método que debemos usar es insertOne()
. El siguiente ejemplo crea en la colección albumes perteneciente a 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
})
No hemos incluido el campo _id
, pero 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
}
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 con este método:
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 }
Desde la versión 3.6 existe un límite de 100.000 documentos por actualización masiva. No obstante, la mayoría de los drivers pueden lidiar con este límite y hacerlo transparente al usuario evitando dicha limitación.
El método insertMany()
tiene un segundo parámetro opcional que consiste en un documento con opciones de como realizar la actualización. Este documento-parámetro puede tener dos claves, las dos opcionales:
writeConcern
ordered
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 dicho orden. Si lo ponemos atrue
, entonces en caso de que ocurra algún fallo en la actualización de un documento se abortará la carga. Si lo ponemos a false
se omitirá el error y la carga continuará sin problemas.MongoDB realiza las siguientes validaciones básicas a la hora de insertar un documento en una colección:
_id
. Si no se especifica MongoDB lo añadirá por nosotros.insert()
, desde MongoDB desaconsejan su uso y es muy probable que desaparezca.Fantástico, ya sabes como insertar documentos en MongoDB, de uno en uno, o por lotes. En la siguiente página aprenderás a modificarlos.
Esta píldora formativa está extraída del Curso online de Introducción a MongoDB.
No pierdas tu oportunidad y ¡continúa aprendiendo!
Política de privacidad
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