我的查询如下所示:
db.test.findAll({
group: ['source'],
attributes: ['source', [Sequelize.fn('COUNT', 'source'), 'count']],
order: [
[Sequelize.literal('count'), 'DESC']
]
}).then((sources) => {
sources.forEach((info) => {
console.log('sorce name :' + info.source + " count : " + info.count);
})
}).catch((err) => {
console.log(err);
})
因此,这里发生的情况是info.source
名称被完美打印。但是info.count
是undefined
,即使它在响应中显示了吗?
答案 0 :(得分:2)
Sequelize尝试将结果映射到test
模型,使用raw: true
来防止这种情况...
db.test.findAll({
group: ['source'],
attributes: ['source', [Sequelize.fn('COUNT', 'source'), 'count']],
order: [
[Sequelize.literal('count'), 'DESC']
],
raw: true, // <-- HERE
})
答案 1 :(得分:0)
我自己遇到了这个问题。不必使用raw: true
,您可以使用instance.get('attribute')
,因此在您的情况下
sources.forEach((info) => {
console.log('source name :' + info.source + " count : " + info.get('count');
})
您也可以执行info.dataValues.count