Sequelize.js 续写js如何在模型中使用数据库函数
我的用例是这样的Sequelize.js 续写js如何在模型中使用数据库函数,sequelize.js,Sequelize.js,我的用例是这样的 用户可以查看菜肴 每个评论都存储在一个名为ratings的表中 当一条新记录插入到评级表中时,盘表整体评级列应使用平均评级值进行更新 我还浏览了stack overflow和GitHub中的文档和一些问题。 到目前为止,我所做的是 const db=require(../models”); const Sequelize=require('Sequelize'); 导出异步函数创建(req、res、next){ 试一试{ const body=req.swagger.para
const db=require(../models”);
const Sequelize=require('Sequelize');
导出异步函数创建(req、res、next){
试一试{
const body=req.swagger.params.body.value;
常数率=等待分贝额定值。创建(主体{
字段:['user_id','dish','total','notes','createdAt','updatedAt']
})
const average=等待Sequelize.fn('AVG',Sequelize.col('total'))
res.sendStatus(200);
}捕获(错误){
console.log(错误);
res.status(500).json(错误)
}
}
这是如何与属性一起使用的:
db.ratings.findAll({
attributes : [ [Sequelize.fn('AVG', Sequelize.col('overall')),'overall'] ] // <--- All you need is this
}).then(data => {
console.log(data);
})
db.ratings.findAll({
属性:[[Sequelize.fn('AVG',Sequelize.col('overall'),'overall']//{
控制台日志(数据);
})
有关详细信息:这是如何与属性一起使用的:
db.ratings.findAll({
attributes : [ [Sequelize.fn('AVG', Sequelize.col('overall')),'overall'] ] // <--- All you need is this
}).then(data => {
console.log(data);
})
db.ratings.findAll({
属性:[[Sequelize.fn('AVG',Sequelize.col('overall'),'overall']//{
控制台日志(数据);
})
有关更多详细信息:首先,非常感谢您不断帮助我改进。=)我已将查询更改为此const average=wait db.ratings.findAll({where:{dish:1},attributes:[sequelize.fn('AVG',sequelize.col('total')]))然后执行的查询是这个SELECT AVG(总体
)从ratings
ASratings
WHEREratings
=1;但是我没有得到任何输出。我只得到一个空对象。但是我复制执行的查询并在phpmyadmin上运行,然后查询执行并给我输出。这里会出什么问题?“findAll”将给出所有列并传递“属性”将只提供提及的列。因此我没有提及任何列。这是原因吗?@PathumSamararathna,已更新答案,请先尝试第一件事,非常感谢您不断帮助我改进。=)我已将查询更改为此const average=wait db.ratings.findAll({其中:{dish:1},attributes:[sequelize.fn('AVG',sequelize.col('overall'))]})然后执行的查询是这个SELECT AVG(overall
)从ratings
ASratings
WHEREratings
=1;但是我没有得到任何输出。我只得到一个空对象。但是我复制执行的查询并在phpmyadmin上运行,然后查询执行并给我输出。这里会出什么问题?“findAll”将给出所有列并传递“属性”将只提供提到的专栏。所以我没有提到任何专栏。这是原因吗?@PathumSamararathna,已经更新了答案,请尝试那个