[英]How to filter results from mysql in node.js response
我有一个来自MySQL的查询,选择了两行的所有列。 它返回预期的结果,但是我想要的是存储所有提取到data
行,像这样:
var response = {
data : result //result from mysql
};
但我不想显示所有列。 可以说该表有4列。 MySQL查询的结果是:
[
{
row1: 'a',
row2: 'b',
row3: 'c',
row4: 'd'
},
{
row1: 'e',
row2: 'f',
row3: 'g',
row4: 'h'
}
]
而且我只想在response.data
传递row2和row3。 我希望它具有以下结果:
data : [
{
row2: 'b',
row3: 'c'
},
{
row2: 'f',
row3: 'g'
}
]
怎么做? 注意,我没有在MySQL查询中指定仅返回row2和row3,因为该MySQL调用将在其他调用中使用。
我认为您不想更改实际的resopnse
对象,因为您已指定将结果用于其他调用。
我尝试使用简单的JavaScript进行跟踪。
var response = {data:[
{
row1: 'a',
row2: 'b',
row3: 'c',
row4: 'd'
},
{
row1: 'e',
row2: 'f',
row3: 'g',
row4: 'h'
}
]};
var newResponse = {};
newResponse.data = response.data.map(function (rows) {
return {row2:rows.row2,row3:rows.row3};
});
console.log(newResponse); //your result object as you wanted
console.log(response); // the actual response object, just to verify it doesn't got changed
使用下划线地图功能 。
像这样:
var response = {};
response.data = _.map(result, function(row) {
var newRow = {};
newRow.row2 = row.row2;
newRow.row3 = row.row3;
return newRow;
});
或者,您可以使用地图选择来简化它。
var response = {};
response.data = _.map(result, function(row) {
return _.pick(row, 'row2', 'row3');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.