MondogDB
Prácticas MongoDB
1. Bases de datos, colecciones e inserts
• Nos conectamos con mongosh a nuestro MongoDB
• En primer lugar, creamos una Base de datos denominada curso
use curso switched
to db curso
• Comprobamos que no aparece todavía
show dbs admin
252.00 KiB config
72.00 KiB db1
1.08 MiB db2
8.00 KiB db3
56.00 KiB local
72.00 KiB test
40.00 KiB
• Creamos una colección denominada “facturas” con el comando
createCollection y comprobar que aparece tanto la colección como la
Base de Datos
curso> db.createCollection("facturas")
{ ok: 1 }
curso> show
collections facturas
curso> show dbs admin
252.00 KiB config
108.00 KiB curso
8.00 KiB db1
1.08 MiB db2
8.00 KiB db3
56.00 KiB local
72.00 KiB test
40.00 KiB
•
MondogDB
• Insertar un documento con los siguientes datos
Cod_factura 10
Cliente “Frutas Ramirez”
Total 223
curso> db.facturas.insertOne({cod_factura:
10,cliente: "Frutas Rodriguez",total: 223})
{
acknowledged: true,
insertedId: ObjectId("6498bbcee5289d1bd31996fb") }
• Hacemos un find() para comprobar que está y que le ha colocado un
campo denominado “_id”
curso> db.facturas.find()
[
{
_id: ObjectId("6498bbcee5289d1bd31996fb"),
cod_factura: 10,
cliente: 'Frutas Rodriguez',
total: 223
}
]
• Insertar una nueva fila en facturas y comprobar con un “find” que se ha
añadido
Cod_factura 20
Cliente “Ferreteria Juan”
Total 140
MondogDB
curso> db.facturas.insertOne({cod_factura: 20,cliente:
"Ferreteria Juan",total: 140})
{
acknowledged: true,
insertedId: ObjectId("6498c418e5289d1bd31996fc")
}
curso> db.facturas.find()
[
{
_id: ObjectId("6498bbcee5289d1bd31996fb"),
cod_factura: 10,
cliente: 'Frutas Rodriguez',
total: 223
},
{
_id: ObjectId("6498c418e5289d1bd31996fc"),
cod_factura: 20,
cliente: 'Ferreteria Juan',
total: 140
}
]
• Ahora vamos a crear una nueva colección, pero usando directamente un
insert.
• Insertamos un documento en una colección que no existe (productos)
con los siguientes datos
Cod_producto 1
Nombre “Tornillo x1”
Precio 2
Unidades 1500
curso> db.productos.insertOne( { cod_producto: 1,
nombre: "Tornillo x1", precio: 2, unidades: 1500})
{
MondogDB
acknowledged: true,
insertedId: ObjectId("6498c531e5289d1bd31996fd") }
• Hacemos un “show collections” para comprobar que se ha creado
satisfactoriamente
curso> show collections
facturas productos
• Para comprobar que los atributos de un documento pueden ser distinto
a otro en el esquema flexible, vamos a insertar un producto que tenga un
array.
Cod_producto 2
nombre “Martillo X2”
precio 20
Unidades 50
fabricantes Fab1,fab2,fab3,fab4
db.productos.insertOne( { cod_producto: 2, nombre:
"Martillo
X2", precio: 20, unidades: 50, fabricantes:
["fab1","fab2","fab3","fab4"]})
{
acknowledged: true,
insertedId: ObjectId("6498c980e5289d1bd31996fe") }
• Hacemos un find() para comprobar el resultado
MondogDB
curso> db.productos.find()
[
{
_id:
ObjectId("6498c531e5289d1bd31996fd"),
cod_producto: 1, nombre: 'Tornillo x1',
precio: 2, unidades: 1500
},
{
_id:
ObjectId("6498c980e5289d1bd31996fe"),
cod_producto: 2, nombre: 'Martillo X2',
precio: 20, unidades: 50,
fabricantes: [ 'fab1', 'fab2', 'fab3', 'fab4' ]
}
]
• Ahora vamos a borrar la colección “facturas”
curso> db.facturas.drop() true
• Comprobamos que se ha borrado
curso> show collections productos
• Vamos ahora a insertar un documento en una colección denominada
“fabricantes” para probar los subdocumentos y la clave “_id”
personalizada
_id 1
nombre “fab1”
MondogDB
Localidad
Ciudad: “Buenos Aires”
País: “Argentina”
Calle: “Calle Pez 27”
Cod: 29000
db.fabricantes.insertOne( { _id:
1, nombre: 'fab1',
localidad: {
ciudad: 'Buenos Aires',
País: 'Argentina',
Calle: 'Calle Pez 27',
Cod_postal: 29000
}
})
• Hacemos un find para comprobar el resultado
curso> db.fabricantes.find()
[
{
_id: 1,
nombre: 'fab1',
localidad: {
ciudad: 'Buenos Aires',
'País': 'Argentina',
Calle: 'Calle Pez 27',
Cod_postal: 29000
}
}
]
• Ahora vamos a realizar un insert de varias filas en la colección
“productos”
Cod_producto 3
MondogDB
nombre “Alicates”
precio 10
Unidades 25
fabricantes Fab1,fab2,fab5
Cod_producto 4
nombre “Arandela”
precio 1
Unidades 500
fabricantes fab2,fab3,fab4
MondogDB
db.productos.insertMany([
{ cod_producto: 3,
nombre: "Alicates",
precio: 10,
unidades: 25,
fabricantes:
["fab1","fab2","fab5"]
},
{ cod_producto: 4,
nombre: "Arandela",
precio: 1,
unidades: 500,
fabricantes:
["fab2","fab3","fab4"]
} ]
)
{
acknowledged: true,
insertedIds: {
'0': ObjectId("64995f54e5289d1bd31996ff"),
'1': ObjectId("64995f54e5289d1bd3199700")
}
}
• Comprobar con el find que se han creado
MondogDB
curso> db.productos.find()
[
{
_id:
ObjectId("6498c531e5289d1bd31996fd"),
cod_producto: 1, nombre: 'Tornillo x1',
precio: 2, unidades: 1500
},
{
_id:
ObjectId("6498c980e5289d1bd31996fe"),
cod_producto: 2, nombre: 'Martillo X2',
precio: 20, unidades: 50,
fabricantes: [ 'fab1', 'fab2', 'fab3', 'fab4' ]
},
{
_id:
ObjectId("64995f54e5289d1bd31996ff"),
cod_producto: 3, nombre: 'Alicates',
precio: 10, unidades: 25,
fabricantes: [ 'fab1', 'fab2', 'fab5' ]
},
{
_id: ObjectId("64995f54e5289d1bd3199700"), cod_producto:
4, nombre: 'Arandela', precio: 1, unidades: 500,
fabricantes: [ 'fab2', 'fab3', 'fab4' ]
}
]