首页 文章

Sequelize js如何将数据库函数与模型一起使用

提问于
浏览
0

嗨,我的用例是这样的,

  • 用户可以查看菜肴 .

  • 每个评论都存储在一个名为 ratings 的表中 .

  • 当插入 ratings tableDish tables 整体评级栏的新记录应使用平均评级值更新时 .

我通过堆栈溢出和GitHub中的文档和一些问题 . 到目前为止我所做的是 .

const db = require("../models");
const Sequelize = require('sequelize');

export async function create(req, res, next) {
    try {
        const body = req.swagger.params.body.value;
        const rate = await db.ratings.create(body, {
            fields: ['user_id', 'dish', 'overall', 'notes', 'createdAt', 'updatedAt']
        })

        const average = await Sequelize.fn('AVG', Sequelize.col('overall'))
        res.sendStatus(200);
    } catch (error) {
        console.log(error);
        res.status(500).json(error)
    }
}

我认为平均功能是

Sequelize.fn('AVG',Sequelize.col('整体'))

但我不知道如何在 model ratings 上调用它

任何帮助!提前致谢! =)

1 回答

  • 2

    这是你如何使用 attributes

    db.ratings.findAll({
        attributes : [ [Sequelize.fn('AVG', Sequelize.col('overall')),'overall'] ] // <--- All you need is this
    }).then(data => {
        console.log(data);
    })
    

    有关更多详细信息: DO READ

相关问题