节点 MYSQL 如何在自己的对象中获取连接的表
Node MYSQL How can I get a joined table in its own object?
我目前正在使用此SQL查询:
var sqlQuery = `
SELECT user.ID, user.email, user.first_name, user.last_name,
user.address1, user.address2, user.country, user.gender, chars.sID, chars.name,
chars.experience, chars.locked
FROM subscriber AS user
LEFT JOIN chars on user.ID = chars.sID
WHERE user.ID = ?
`;
这工作正常,我得到这种风格的结果:
RowDataPacket {
[1] ID: 13,
[1] email: 'fakeemail@email.com',
[1] first_name: null,
[1] last_name: null,
[1] address1: null,
[1] address2: null,
[1] country: null,
[1] gender: null,
[1] sID: 13,
[1] name: 'CharName',
[1] experience: 0,
[1] locked: 'N' }
唯一的问题是我为数据库中的每个chars
都得到该结果,我只需要订阅者一次,然后我需要许多chars
但是我怎样才能得到它,所以我最终会得到类似的东西
RowDataPacket {
field: blah,
field: blah,
charData: {
name: 'CharName',
locked: 'N'
}
}
我希望连接的数据位于其自己的对象中。任何信息都将非常感谢。
MySql 总是返回原始数组。如果你想要这样的东西,你需要根据你的需要格式化它。有一些图书馆可以帮助你喜欢lodash
,但这不是一件难事
您可以通过 go 解决数组中的所有行并将其添加到另一个对象另一个对象result
将具有订阅者的电子邮件和 charsData 数组的键。
例如:
result={
'subscriber1@gmail:{
'field: blah,
field: blah,
charsData: [{
name: 'CharName',
locked: 'N'
},{
name: 'CharName2',
locked: 'l'
}]
},
'subsriber2@yahoo':{
Another Subscriber
}
}
守则:
var result={}
var input=YourArrayFromMySQL
for(var i=0;i<input.length;i++){
var thisLine=input[i]
//Copy the char to new variable
var thisChar= {
name:thisLine.name,
locked:thisLine.locked
}
//Delete the char from the subscribe line
delete thisLine.name
delete thisLine.locked
//If this subscriber not exsists in the result, create it, with empty array
if(!result[thisLine.email]){
result[thisLine.email]=thisLine
result[thisLine.email].charsData=[]
}
// Add to the matching subscriber the char
result[thisLine.email].charsData.push(thisChar)
}
相关文章:
- 如何从Meteor内部获取当前连接的MongoDB数据库的URL
- 从显示节点关系的csv文件中获取连接节点的数量
- 如何通过连接多个异步javascript调用,从对象数组中排序并获取第一个obejct
- 在Sequelize中查询连接表而不获取这两个关联
- 谷歌地图-从连接的结果[1].formated_address中获取结果[0].formated_address
- 如何获取连接的 wifi 网络名称
- 当互联网连接丢失时,如何从 Ajax 调用中获取信息
- 节点 MYSQL 如何在自己的对象中获取连接的表
- 在节点.js websocket 连接 (socket.io) 中获取客户端的 IP
- 如何从适用于 Chrome 应用的 GCM 连接服务器获取注册令牌
- 如何获取有关WebRTC PeerConnection的连接类型的信息
- 如何使用 JavaScript 获取计算机中连接的摄像机列表
- 给定整数列表,找到可获取的最高值并按降序连接
- 如何将 for 循环中的 set 变量连接起来,以用作输入中的名称以获取值
- Javascript 字符串未获取连接的变量值
- 获取断开连接的客户端的昵称
- Socket.IO获取连接的客户端列表
- 如何获取连接服务器的主机名和端口号
- 使用ajax将文件上传到服务器上传目录.图片不能上传到上传目录;获取连接重置错误
- 无法使用我的 phonegap jquery 应用程序在页面加载时获取连接状态