Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

173
Vistas
¿Cómo analizo una parte del resultado de una consulta anidada? (Javascript y MySQL)

Estoy tratando de obtener una estructura anidada a partir de una consulta de MySQL y, como resultado del uso de JSON_OBJECT, una sección de mis datos devueltos está encadenada. Los datos que estoy recibiendo actualmente se ven de la siguiente manera:

 [ { "id": 3, "body": "Does this product run big or small?", "date_written": 1608535907, "asker_name": "jbilas", "helpful": 8, "reported": 0, "answers": null }, { "id": 4, "body": "How long does it last?", "date_written": 1594341317, "asker_name": "funnygirl", "helpful": 6, "reported": 0, "answers": "{\"65\": {\"id\": 65, \"body\": \"It runs small\", \"date\": 1605784307, \"helpful\": 1, \"reported\": 0, \"answerer_name\": \"dschulman\"}, \"89\": {\"id\": 89, \"body\": \"Showing no wear after a few months!\", \"date\": 1599089610, \"helpful\": 8, \"reported\": 0, \"answerer_name\": \"sillyguy\"}}" }, {etc}, {etc}]

Antes de enviar el resultado de mi consulta a la base de datos al cliente, necesito analizar el valor de las respuestas. Mi pensamiento inicial fue hacer que el resultado fuera una promesa, luego usar un bucle forEach para ejecutar cada objeto y analizar las 'respuestas' si no está indefinido. Mi código para hacer eso está organizado de la siguiente manera:

 db.query(query, [req.query['product_id'], req.query['count']], (error, results) => { if (error) { console.log('err err ', error); } if (!results[0]) { res.json('No questions found') } else { console.log(results) Promise.resolve(results.forEach(result => { if (result['answers'] !== undefined) { JSON.parse(result['answers']); } return results; })) .then(results => { console.log(results) }) res.json(results.splice(0, req.query['count'])); } })

El registro de la consola en mi bloque 'entonces' devuelve indefinido. También intenté usar results.map(), pero esto registró un montón de matrices vacías en el bloque luego. ¡Algún consejo sobre cómo analizar los valores de 'respuestas' cuando no son nulos para una serie de objetos muy apreciados!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Solo un pensamiento, ¿ha intentado simplemente iterar los results y actualizar la propiedad de answers sin una Promesa?:

 db.query(query, [req.query['product_id'], req.query['count']], (error, results) => { if (error) { console.log('err err ', error); } if (!results[0]) { res.json('No questions found') } else { console.log(results) results.forEach(result => { result.forEach((obj) => { obj.answers = JSON.parse(obj.answers); }); }); res.json(results.splice(0, req.query['count'])); } });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda