как произвести результат запроса mysql в node js - PullRequest
0 голосов
/ 13 июля 2020

Я хочу получить результат mysql в node js

Я хочу получить такой результат

[ 
 { 
 "m_idx" :1 ,
 "contents" :
             { 
               "m_name" : "a",
               "m_name" : "b",
             }
 },
 "m_idx" :2,
 "contents" :
             { 
               "m_name" : "c",
             }
 }
]

, но мой результат

{
        "m_idx": 1,
        "contents": [
            {
                "m_name": "a"
            }
        ]
    },
    {
        "m_idx": 1,
        "contents": [
            {
                "m_name": "b"
            }
        ]
    },

Я не знаю, как получить результат, может ли кто-нибудь мне помочь ...? Пожалуйста, это то, что я практиковал, код

let result = [];
    let categories = [];
    connection.query(sql, function (err, rows) {
        if (res.status(200)) {
            rows.forEach(function (row, index) {
                    let variable = {
                        m_idx: row.m_idx,
                        contents: []
                    };
                    categories.push(variable);
                    variable.contents.push({
                        m_name: row.m_name,
                        name: row.name,
                    })
            });
            res.json(categories);
        }
    });

, и результат моей базы данных такой

-----
|1|a|
|1|b|
|2|c|
-----

1 Ответ

1 голос
/ 13 июля 2020

я полагаю, что contents, который вам нужен, является массивом, а не объектом, потому что в одном объекте не должно быть одинаковых свойств.

возможно, это вам поможет.

const rows = [
  {"m_idx": 1, "m_name": "a"},
  {"m_idx": 1, "m_name": "b"},
  {"m_idx": 2, "m_name": "c"}
]

const map = new Map();
rows.forEach(row => {
  if (map.get(row.m_idx) === undefined) {
    map.set(row.m_idx, {
      "m_idx": row.m_idx,
      "contents": [{"m_name": row.m_name}]
    });
  } else {
    map.get(row.m_idx).contents.push({"m_name": row.m_name});
  }
});

const result = [];

map.forEach((v, k) => {
  result.push(v);
});

console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...