Javascript 如何在NodeJS中生成mysql查询结果
我想在NodeJS中制作mysql的结果 我想做出这样的结果Javascript 如何在NodeJS中生成mysql查询结果,javascript,node.js,Javascript,Node.js,我想在NodeJS中制作mysql的结果 我想做出这样的结果 [ { "m_idx" :1 , "contents" : { "m_name" : "a", "m_name" : "b", } }, "m_idx" :2, &qu
[
{
"m_idx" :1 ,
"contents" :
{
"m_name" : "a",
"m_name" : "b",
}
},
"m_idx" :2,
"contents" :
{
"m_name" : "c",
}
}
]
-----
|1|a|
|1|b|
|2|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);
}
});
我的数据库结果是这样的
[
{
"m_idx" :1 ,
"contents" :
{
"m_name" : "a",
"m_name" : "b",
}
},
"m_idx" :2,
"contents" :
{
"m_name" : "c",
}
}
]
-----
|1|a|
|1|b|
|2|c|
-----
我猜您想要的
内容是一个数组而不是一个对象,因为同一个对象中不应该有相同的属性
也许这对你有帮助
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);