No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Insertando varios documentos

12/30
Recursos

Aportes 5

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Con esta instrucción, le decimos a Mongo que si hay un problema de duplicidad, solo deje estos documentos fuera y que continue con la inserción de datos.

, {
    ordered: false
}

Si hay una falla al insertar un conjunto de documentos, al encontrar una falla en el diccionario, a partir de ahi se dejan de crear documentos.

use("platzi_store")

db.products.drop() // drop() borra todos los documentos de toda una coleccion !cuidado :v!

db.products.insertMany([  //si hay una colision de _id  si inserta pero hasta la colision
    {
        _id: 1,
        name: "Raqueta",
        price: 1000
    },
    {
        _id: 2,
        name: "pelota",
        price: 20
    }
],{
    ordered: false //si hay una colision de _id  si inserta pero no inserta los colisionados
}
) 

db.products.find()

Por lo que veo, podemos usar insertMany para insertar varios documentos pero también podemos usar solo la instrucción insert con la misma sintaxis.

Inserción de documentos y duplicidad

podemos insertar varios documentos en una colección con insertMany([{...},{...}])

db.collection.insertMany([
    {
      ...
    },
    {
      ...
    },
    {
      ...
    },
    {
      ...
    },
])

siguiendo el ejercicio, podemos insertar varios productos a la colección de productos
src/crud/insertMany.mongodb:

use("try")
db.products.drop()

db.products.insertMany([
  {
    _id: 1,
    name: "Product 1",
    price: 100
  },
  {
    _id: 2,
    name: "Product 2",
    price: 200
  },
  {
    _id: 3,
    name: "Product 3",
    price: 300
  },
])

db.products.find()

con esta instrucción insertaríamos 3 documentos a la colección, sin embargo, hay que tener en cuenta que si hay problemas de duplicidad como en el siguiente caso, donde el documento numero 3 tiene el mismo identificador que el documento numero 1

db.products.insertMany([
  {
    _id: 1,
    name: "Product 1",
    price: 100
  },
  {
    _id: 2,
    name: "Product 2",
    price: 200
  },
  {
    _id: 1,
    name: "Product 1",
    price: 100
  },
   {
    _id: 3,
    name: "Product 3",
    price: 300
  },
])

Mongo solo insertara los documentos hasta el punto donde encuentre el error, insertando solo los 2 primeros documentos, para evitar este comportamiento por defecto, debemos pasarle un segundo argumento { ordered: false } a la instrucción insertMany([{...},{...}, { ordered: false }])

db.products.insertMany([
  {
    _id: 1,
    name: "Product 1",
    price: 100
  },
  {
    _id: 2,
    name: "Product 2",
    price: 200
  },
  {
    _id: 1,
    name: "Product 1",
    price: 100
  },
   {
    _id: 3,
    name: "Product 3",
    price: 300
  },
],{
  ordered: false
})

de esta forma, Mongo insertara todos los documentos que le mandamos y solo dejara por fuera los que tengan problemas de duplicidad.