Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sequelize group by fn count becomes undefined

My query is as shown below :

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);
})

So, here what happens is info.source name is printed perfectly. But info.count is undefined even if it is shown in the response ?

like image 709
Mrugesh Thaker Avatar asked Oct 14 '25 08:10

Mrugesh Thaker


1 Answers

Sequelize is trying to map result to test model, use raw: true to prevent that...

db.test.findAll({
  group: ['source'],
  attributes: ['source', [Sequelize.fn('COUNT', 'source'), 'count']],
  order: [
    [Sequelize.literal('count'), 'DESC']
  ],
  raw: true, // <-- HERE
})
like image 197
m1ch4ls Avatar answered Oct 17 '25 01:10

m1ch4ls