我有一个mysql表,我使用sequelize在node.js中查询它。如何统计具有特定值的所有行?这就是代码:
const data = await db.models.fruits.findAll({
where: { type: `fresh` },
group: `title`,
attributes: [`title`, [Sequelize.fn(`COUNT`, `title`), `title`]]
})
const rows = data.map(el => el.get({ plain: true }))
console.log(rows)
在我的控制台中,我得到了结果:
[ { title: 17 }, { title: 15 } ]
算对了。但我的问题是我应该如何转换Sequelize代码以获得这样的结果:
[ { orange: 17 }, { apple: 15 } ]
1条答案
按热度按时间6pp0gazn1#
使用
map
将fruit属性转换为title,将count属性转换为value。例如:如果数据阵列包含{ fruit: 'orange', count: 17 }
和{ fruit: 'apple', count: 15 }
,则行阵列将包含{ orange: 17 }
和{ apple: 15 }
。