4. Consultar documentos

Ahora que tienes datos importados de Airbnb, aprenderás a leerlos y explorarlos.

El comando find

Para obtener todos los documentos de una colección:

db.listings.find()

Esto devuelve los primeros 20 documentos. Para ver más, escribe it (iterate).

Buscar documentos específicos

Puedes usar un filtro para buscar documentos que cumplan ciertas condiciones:

// Listados del barrio CIUTAT VELLA
db.listings.find({ neighbourhood_group_cleansed: "CIUTAT VELLA" })

// Listados de tipo "Entire home/apt"
db.listings.find({ room_type: "Entire home/apt" })

El filtro es un objeto con pares campo-valor. MongoDB devuelve solo los documentos donde esos campos tienen esos valores exactos.

El comando findOne

Para obtener solo un documento (útil para ver la estructura):

// Obtiene el primer listado
db.listings.findOne()

// Obtiene un listado específico
db.listings.findOne({ room_type: "Private room" })

findOne devuelve un solo documento en lugar de un cursor.

Proyecciones

Puedes seleccionar qué campos devolver usando proyecciones:

// Solo devuelve name y price (y _id por defecto)
db.listings.find(
  { neighbourhood_group_cleansed: "EXTRAMURS" },
  { name: 1, price: 1 }
)

// Excluye el campo _id
db.listings.find(
  { neighbourhood_group_cleansed: "EXTRAMURS" },
  { name: 1, price: 1, _id: 0 }
)

En las proyecciones: - 1 significa "incluir este campo" - 0 significa "excluir este campo"

No puedes mezclar inclusiones y exclusiones (excepto con _id).

Contar documentos

Ya conoces countDocuments de la lección anterior. Ahora puedes usarlo con filtros:

// Contar listados de un barrio específico
db.listings.countDocuments({ neighbourhood_group_cleansed: "BENIMACLET" })

// Contar superhosts
db.listings.countDocuments({ host_is_superhost: "t" })
Actividad 1

Practica consultas básicas con los listados de Airbnb:

  1. Busca todos los listados del barrio CIUTAT VELLA
  2. Busca listados de tipo "Entire home/apt" (room_type)
  3. Busca un solo listado que sea "Private room"
  4. Muestra solo los campos name, price y host_name de listados en POBLATS MARITIMS
  5. Cuenta cuántos listados hay en el barrio BENIMACLET

Pro:

  1. Busca listados donde el anfitrión sea superhost (host_is_superhost es "t")
  2. Busca un listado que sea del barrio RASCANYA y muestra solo su nombre y tipo de habitación
  3. Cuenta cuántos listados hay de tipo "Private room" en el barrio EXTRAMURS (combina filtros en un solo objeto)

Soluciones

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Desafíos de programación atemporales y multiparadigmáticos

Desafíos de programación atemporales y multiparadigmáticos

Te encuentras ante un librillo de actividades, divididas en 2 niveles de dificultad. Te enfrentarás a los casos más comunes que te puedes encontrar en pruebas técnicas o aprender conceptos elementales de programación.

Buy the book

Will you buy me a coffee?

Comments

There are no comments yet.

Visitors in real time

You are alone: 🐱