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
}
Fundamentos de MongoDB
¿Qué es Mongo DB?
Bases de datos NoSQL
¿Qué son los documentos y colecciones?
Creando tu primer BD
Usando Mongo Compass
Mongo en VSCode
Instalando Docker
Mongo con Docker
Conectándonos usando mongosh
Json vs. Bson
CRUD
Insertando un documento
Insertando varios documentos
Actualizando un documento
Actualizando varios documentos
Array Update Operators
Update or insert
Elimando documentos
Operadores
Usando $eq y $ne
Usando $gt, $gte, $lt, $lte
Ejemplos de $gt, $gte, $lt, $lte
Usando $regex
Projection
Operadores para Arrays
Operadores lógicos
Expresive operator
Query in subdocs
Herramientas comunes al trabajar con MongoDB
Aggregation Framework
Sort, limit y skip
Atlas features
Toma el Curso de Modelamiento de Datos en MongoDB
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Nicolas Molina
Aportes 7
Preguntas 4
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
}
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()
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.
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.
Para comentar dentro del archivo .mongodb se usa //
use("platzi_store");
db.products.drop(); // Delete all documents
db.products.insertMany(
[
{
_id: 1,
name: "Laptop",
price: 1099,
},
{
_id: 2,
name: "Mouse",
price: 508,
},
{
_id: 3,
name: "Keyboard",
price: 746,
},
{
_id: 2,
name: "Monitor",
price: 1299,
},
{
_id: 5,
name: "Headphones",
price: 129,
},
],
{
ordered: false, // If has problems, how to _ids duplicate, continue with after items
}
);
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.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?