我在node.js中使用了sequelize。目前,我可以搜索多个表,并将结果作为数据生成。我已经使用以下代码完成了此操作:
router.get("/alldata", (req, res) =>
Promise.all([chemical_bays.findAll(), electricals.findAll(), fire_services.findAll(), instruments.findAll(), mechanicals.findAll(), microwaves.findAll(), tools.findAll(), water_cays.findAll(), buildings.findAll(), substations.findAll(), fences_gates_cctv.findAll(), steam_plant_other.findAll(), information_technology.findAll(), ])
.then((data) => { res.render('gigs', {gigs: [...data[0], ...data[1], ...data[2], ...data[3], ...data[4], ...data[5], ...data[6], ...data[7], ...data[8], ...data[9], ...data[10], ...data[11], ...data[12]] }) }).catch(err => console.log(err)));但是,我现在希望对结果进行计数并显示它们,但是,如果我使用聚合属性" count ",我会收到一个错误。下面是我尝试使用的代码:
router.get("/alldata", (req, res) => Promise.all([chemical_bays.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['chemical_bays.id'],
raw: true,
order: sequelize.literal('count DESC')}), electricals.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['electricals.id'],
raw: true,
order: sequelize.literal('count DESC')}), fire_services.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['fire_services.id'],
raw: true,
order: sequelize.literal('count DESC')}), instruments.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['instruments.id'],
raw: true,
order: sequelize.literal('count DESC')}), mechanicals.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['mechanicals.id'],
raw: true,
order: sequelize.literal('count DESC')}), microwaves.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['microwaves.id'],
raw: true,
order: sequelize.literal('count DESC')}), tools.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['tools.id'],
raw: true,
order: sequelize.literal('count DESC')}), water_cays.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['water_cays.id'],
raw: true,
order: sequelize.literal('count DESC')}), buildings.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['buildings.id'],
raw: true,
order: sequelize.literal('count DESC')}), substations.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['substations.id'],
raw: true,
order: sequelize.literal('count DESC')}), fences_gates_cctv.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['fences_gates_cctv.id'],
raw: true,
order: sequelize.literal('count DESC')}), steam_plant_other.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['steam_plant_other.id'],
raw: true,
order: sequelize.literal('count DESC')}), information_technology.findAll({attributes: ['id', [sequelize.fn('count', sequelize.col('id')), 'count']],
group : ['information_technology.id'],
raw: true,
order: sequelize.literal('count DESC')}), ])
.then((data) => {res.render('gigs', {
//gigs:data[0],
//gigs2:data[1]
gigs: [...data[0], ...data[1], ...data[2], ...data[3], ...data[4], ...data[5], ...data[6], ...data[7], ...data[8], ...data[9], ...data[10], ...data[11], ...data[12]]
})
})
.catch(err => console.log(err)));发布于 2019-11-07 03:17:40
尝试添加:
logging: console.log()在您的选项中(与raw相同的级别)。这将打印应用程序日志中的MySQL查询。然后,您可以尝试在MySQL工作台或PHPMyAdmin中运行相同的查询,并查看是否有明确的错误消息。
https://stackoverflow.com/questions/58726375
复制相似问题