sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB insertarMuchos()

En MongoDB el db.collection.insertMany() El método inserta varios documentos en una colección.

La collection parte es el nombre de la colección en la que insertar los documentos.

Ejemplo

Aquí hay un ejemplo del uso de db.collection.insertMany() para insertar múltiples documentos en una colección llamada pets :

db.pets.insertMany([
    { _id: 1, name: "Wag", type: "Dog" },
    { _id: 2, name: "Bark", type: "Dog" },
    { _id: 3, name: "Meow", type: "Cat" }
    ])

Resultado:

{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3 ] } 

db.collection.insertMany() método devuelve un documento que contiene:

  • Un acknowledged como true si la operación se ejecutó con problemas de escritura o false si el problema de escritura estaba deshabilitado.
  • Una matriz de _id valores para cada documento insertado con éxito.

Ahora si usamos db.collection.find() al mirar la colección, veremos los documentos recién agregados.

db.pets.find()

Resultado:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

En este caso, nuestros tres documentos son los únicos en la colección, por lo que solo estos documentos fueron devueltos.

Sin embargo, si la colección fuera grande, podríamos usar los ID de los documentos para limitar el resultado a los documentos que nos interesan.

db.pets.find({_id: {$in: [1,2,3]}})

Resultado:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

¿Qué sucede si la colección no existe?

Si la colección no existe, se crea y se le agregan los documentos.

Si la colección ya existe, los documentos simplemente se agregan a ella (siempre que su _id valores no entran en conflicto con ninguno existente).

Cuando creé este ejemplo, la colección no existía, por lo que la operación de inserción la creó.

El _id Campo

El _id field es un campo de identificador único en MongoDB.

Como se demostró en el ejemplo anterior, puede proporcionar su propio _id campo en el documento. Si lo hace, entonces su valor debe ser único dentro de la colección. Esto se debe a que su _id se usará como el identificador único del documento.

Este es un ejemplo de cómo insertar documentos sin proporcionar el _id campos.

db.pets.insertMany([
    { name: "Bruce", type: "Bat" },
    { name: "Sweetie", type: "Honey Badger" }
    ])

Resultado:

{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("5fe30ef737b49e0faf1af215"),
		ObjectId("5fe30ef737b49e0faf1af216")
	]
}

El _id se devuelven los valores de los documentos. Podríamos usarlos para buscar en la colección solo los documentos que insertamos.

Pero en este caso, echemos un vistazo a toda la colección.

db.pets.find()

Resultado:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : ObjectId("5fe30ef737b49e0faf1af215"), "name" : "Bruce", "type" : "Bat" }
{ "_id" : ObjectId("5fe30ef737b49e0faf1af216"), "name" : "Sweetie", "type" : "Honey Badger" }

Podemos ver que nuestros dos nuevos documentos están incluidos en la colección.

El ordered Parámetro

db.collection.insertMany() El método también acepta un ordered parámetro. Este es un parámetro booleano con un valor predeterminado de true .

El ordered El parámetro especifica si la operación de inserción debe ser ordenada o desordenada.

Si ordered se establece en false , los documentos se insertan en un formato desordenado y pueden ser reordenados por mongod para aumentar el rendimiento.

Con las inserciones ordenadas, si ocurre un error durante la inserción de uno de los documentos, MongoDB regresa por error sin procesar los documentos restantes en la matriz.

Con inserciones desordenadas, si ocurre un error durante la inserción de uno de los documentos, MongoDB continúa insertando los documentos restantes en la matriz.

Más información

db.collection.insertMany() El método también acepta un writeConcern argumento, que describe el nivel de reconocimiento solicitado de MongoDB para operaciones de escritura.

Consulte la documentación de MongoDB para db.collection.insertMany() para más información.