Sequelize.js sequalize.js如何获取';包括';条款

Sequelize.js sequalize.js如何获取';包括';条款,sequelize.js,Sequelize.js,根据文档Sequalize有一种方法可以获得这样的记录计数 Project.count().then(c => { console.log("There are " + c + " projects!") }) 但是在我的例子中,我想在include子句中获取记录计数 我有两张桌子 项目 评级 一个项目有很多评分。 评级属于某个项目。 此查询将输出项目以及评级 const dataSet = await db.restaurant_items.findAll({ raw: true,

根据文档Sequalize有一种方法可以获得这样的记录计数

Project.count().then(c => {
  console.log("There are " + c + " projects!")
})
但是在我的例子中,我想在
include
子句中获取记录计数

我有两张桌子

  • 项目
  • 评级
  • 一个项目有很多评分。

    评级属于某个项目。

    此查询将输出项目以及评级

    const dataSet = await db.restaurant_items.findAll({
    raw: true,
    include: [{
                    model: db.ratings,
                    as: 'rates',
            }]
    })
    
    但我想说的是,A项有10个等级,B项有25个等级


    如何实现这一点?

    使用include,您可以像这样做:

    db.restaurant_items.findAll({
    raw: true,
        include: [{
            model: db.ratings,
            as: 'rates',
            attributes : [ 
                            'project_id' ,  // <-- Reference key to parent table
                            [Sequelize.fn("COUNT", Sequelize.col("data_id")), "historyModelCount"] 
                        ],
            separate:true, // <---- Magic is here
            limit : 1 
        }]
    })
    
    db.restaurant\u items.findAll({
    raw:是的,
    包括:[{
    型号:db.ratings,
    如:‘差饷’,
    属性:[
    
    ‘project_id’,//Vivek你能解释一下这里的逻辑吗?=)是“data_id”评分表的主键,什么是“project_id”?@pathumsararathna,project_id(我想你将包含此模型的父模型是project,所以我使用了project_id)亲爱的Vivek我想我的问题不清楚。我更新了这个问题。你能调查一下吗?=)@VivekDoshi如果在另一个字段中使用COUNT,你不应该使用GROUP BY吗?@Blackjack,我将数据限制为1,所以这里不需要gruopBy,否则就需要它