En este artículo reescribo y traduzco al español una guía práctica para trabajar con datos de Yelp en MongoDB usando la base de datos mydb y la colección yelp. Se muestran ejemplos de operaciones CRUD básicas y consultas comunes para insertar registros, obtener negocios mejor valorados, contar reseñas que contienen una palabra, recuperar reseñas de un negocio, actualizar una reseña y eliminar un registro.
1 Inserción de registros en la colección yelp Para poblar la colección yelp se puede usar db.yelp.insertMany con una lista de documentos. Cada documento debe incluir campos como business_id fecha review_id stars text type user_id cool useful funny. Por ejemplo se describen documentos de reseña con business_id A1B2C3D4E5F6G7H8I9J0K1 y otros identificadores, utilizando new Date para el campo fecha para almacenar correctamente las fechas y valores numéricos para stars cool useful funny.
Ejemplo conceptual de inserción usando sintaxis de MongoDB db.yelp.insertMany([{ business_id: A1B2C3D4E5F6G7H8I9J0K1, date: new Date(2023-01-01), review_id: R1S2T3U4V5W6X7Y8Z9A0B1, stars: 4, text: Great food and ambiance will come back, type: review, user_id: U1V2W3X4Y5Z6A7B8C9D0E1, cool: 1, useful: 2, funny: 0 }, { business_id: A1B2C3D4E5F6G7H8I9J0K1, date: new Date(2023-02-15), review_id: R2T3U4V5W6X7Y8Z9A0B1C2, stars: 5, text: Amazing service loved the pizza, type: review, user_id: U2W3X4Y5Z6A7B8C9D0E1F2, cool: 2, useful: 3, funny: 1 }, ...])
2 Encontrar los 5 negocios principales por valoración media Para obtener los 5 negocios con mayor valoración media se utiliza una agregación que agrupa por business_id calcula el promedio de stars ordena de forma descendente y limita a 5 resultados.
Ejemplo de pipeline de agregación db.yelp.aggregate([ { $group: { _id: $business_id, avg_rating: { $avg: $stars } } }, { $sort: { avg_rating: -1 } }, { $limit: 5 } ]) En los datos de ejemplo los resultados devuelven valores promedio como 4.5 4 3.5 dependiendo de los business_id presentes.
3 Contar reseñas que contienen la palabra good Para contar reseñas cuyo campo text contiene la palabra good se puede usar countDocuments con una expresión regular insensible a mayúsculas y minúsculas.
Ejemplo de conteo db.yelp.countDocuments({ text: { $regex: good, $options: i } }) En el conjunto de ejemplo esto devuelve 3 porque tres reseñas contienen la palabra good en el texto.
4 Recuperar todas las reseñas para un negocio específico Para obtener todas las reseñas de un business_id concreto se usa find y se convierte a array si se desea trabajar con el resultado completo.
Ejemplo de consulta db.yelp.find({ business_id: 9yKzy9PApeiPPOUJEtnvkg }).toArray() Esto devuelve todas las reseñas coincidentes con ese identificador de negocio.
5 Actualizar una reseña Para modificar una reseña concreta se puede usar updateOne con un filtro por review_id y la operación $set para cambiar campos como stars y text.
Ejemplo de actualización db.yelp.updateOne({ review_id: fWKvX83p0-ka4JS3dc6E5A }, { $set: { stars: 3, text: Updated review Food was okay service was slow } }) Esto actualiza la valoración y el texto de la reseña especificada.
6 Eliminar un registro Para borrar una reseña se usa deleteOne con el filtro por review_id.
Ejemplo de borrado db.yelp.deleteOne({ review_id: R1S2T3U4V5W6X7Y8Z9A0B1 }) Esto elimina la reseña indicada de la colección.
Notas y buenas prácticas Estas consultas asumen que se está trabajando con la colección yelp en la base de datos mydb. Usar new Date para el campo fecha asegura un almacenamiento correcto. Al importar desde CSV conviene parsear correctamente las fechas antes de insertar. La regex en la consulta de good debe ser insensible a mayúsculas usando la opción i. Para archivos grandes como yelp.csv es recomendable usar mongoimport o un script de inserción por lotes para evitar problemas de memoria y aprovechar índices adecuados.
Extensiones y análisis avanzado Se pueden extender estas consultas para filtrar por rango de fechas agregar condiciones combinadas por usuario o negocio construir agregaciones con conteo de reseñas por rango de estrellas o usar text indexes para búsquedas de texto más rápidas y precisas.
Sobre Q2BSTUDIO Si necesita ayuda profesional con proyectos que impliquen análisis de datos de Yelp u otras fuentes, en Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones completas. Ofrecemos software a medida para empresas, aplicaciones a medida, servicios de inteligencia artificial e ia para empresas, despliegues seguros con ciberseguridad y servicios cloud aws y azure. Además brindamos servicios inteligencia de negocio y soluciones con power bi para visualización y reporting y desarrollamos agentes IA para automatizar procesos y mejorar la toma de decisiones.
Servicios destacados de Q2BSTUDIO Consultoría en inteligencia artificial integración de modelos y agentes IA desarrollo de software a medida aplicaciones a medida integradas con servicios cloud aws y azure estrategias de ciberseguridad para proteger datos y aplicaciones implementación de servicios inteligencia de negocio y dashboards con power bi para explotar datos operativos y mejorar resultados.
Contacto y próximo paso Si quieres que te ayudemos a diseñar e implementar un pipeline de ingestión y análisis para tus datos de Yelp o cualquier otro origen, optimizar consultas MongoDB, crear aplicaciones a medida o desplegar soluciones de inteligencia artificial y ciberseguridad, ponte en contacto con Q2BSTUDIO y te asesoramos en la arquitectura más adecuada y en la ejecución del proyecto.
Conclusión Esta guía ofrece una base sólida para empezar a trabajar con datos de Yelp en MongoDB y puede ampliarse con análisis más complejos, agregaciones avanzadas, índices y pipelines de datos. Combinar estas prácticas con servicios profesionales como los de Q2BSTUDIO permite convertir datos en valor mediante software a medida inteligencia artificial y soluciones cloud seguras.