Consultas en MongoDB
Consultas en MongoDB
Consultas en MongoDB
en
MongoDB
2/14
Nuestros datos de prueba
● Del tutorial de MongoDB
db.inventory.insertMany( [
{ item: "journal", status: "A", size: { h: 14, w: 21, uom: "cm" },
instock: [ { warehouse: "A", qty: 5 } ] },
{ item: "notebook", status: "A", size: { h: 8.5, w: 11, uom: "in" },
instock: [ { warehouse: "C", qty: 5 } ] },
{ item: "paper", status: "D", size: { h: 8.5, w: 11, uom: "in" },
instock: [ { warehouse: "A", qty: 60 } ] },
{ item: "planner", status: "D", size: { h: 22.85, w: 30, uom: "cm" },
instock: [ { warehouse: "A", qty: 40 } ] },
{ item: "postcard", status: "A", size: { h: 10, w: 15.25, uom: "cm" },
instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]);
3/14
Consultas básicas: find
db.collection.find(query, projection)
● query: especifica condiciones o filtros
● projection: especifica los campos a proyectar
SELECT * db.inventory.find()
FROM inventory
5/14
Condiciones de filtrado
SELECT * db.inventory.find(
FROM inventory {$or:[{status:"A"},
WHERE status=“A” or {item:"paper"}]})
item = “paper”
Más operadores (comparación, lógicos, etc)
https://docs.mongodb.com/manual/reference/operator/query
6/14
Condiciones de filtrado (ii)
¿cómo se imponen condiciones de filtrado sobre
documentos anidados?
Se usa “dot notation”
7/14
Ordenación
cursor.sort(criterios)
● criterios: un documento con parejas { field: value } donde
value es 1 (ascendente) o -1 (descendiente)
SELECT * db.inventory.find(
FROM inventory {status:"A"}).sort(
WHERE status=“A” {item:-1})
ORDER BY item desc
8/14
Consultas básicas: count
db.collection.count(query, options)
● query: especifica condiciones o filtros
● options: ver documentación
Devuelve la cantidad de documentos que satisfacen las
condiciones.
SELECT count(*) db.inventory.count(
FROM inventory {status:"A"})
WHERE status=“A”
db.inventory.find(
{status:"A"}).count()
9/14
Consultas básicas: distinct
db.collection.distinct(field, query, options)
● field: campo sobre el cual aplica el distinct
● query: especifica condiciones o filtros
● options: ver documentación
Devuelve los valores diferentes de cierto campo de los
documentos que satisfacen las condiciones.
SELECT db.inventory.distinct(
DISTINCT("instock.qty") "instock.qty",
FROM inventory { status: "A" } )
WHERE status=“A”
10/14
Consultas de agregación
Hay dos mecanismos para hacer
consultas de agregación en
MongoDB:
● Consultas Map-Reduce
● Usar el Aggregation Pipeline
11/14
Aggregation pipeline
Secuencia de operaciones de filtrado, transformación,
agrupación, ordenamiento, y proyección.
12/14
Aggregation Pipeline MongoDB World
13/14
Material adicional
● Web Seminars de MongoDB
– Están los links en EVA del curso
● Documentación en el sitio de MongoDB
– https://docs.mongodb.com/
14/14