Sequlize.js如何获取“ INCLUDE”子句中的记录计数

时间:2018-09-05 11:31:18

标签: sequelize.js

根据文档,序列化可以获取这样的记录计数,

Project.count().then(c => {
  console.log("There are " + c + " projects!")
})

但是对于我来说,我想在include子句中获取记录数。

我有两个桌子。

  1. 项目
  2. 评分

一个项目的评分很高。

评分属于某项。

此查询将把项目与评级放在一起。

const dataSet = await db.restaurant_items.findAll({
raw: true,
include: [{
                model: db.ratings,
                as: 'rates',
        }]
})

我要说的是,项目A的评分为10,项目B的评分为25

我该如何实现?

任何帮助!

感谢进阶!

1 个答案:

答案 0 :(得分:1)

有了include,您可以像这样:

db.restaurant_items.findAll({
raw: true,
    include: [{
        model: db.ratings,
        as: 'rates',
        attributes : [ 
                        'restaurant_item_id' ,  // <-- Reference key to parent table
                        [Sequelize.fn("COUNT", Sequelize.col("data_id")), "historyModelCount"] 
                    ] 
        separate:true, // <---- Magic is here
        limit : 1 
    }]
})