Sequelize.js sequalize.js如何获取';包括';条款
根据文档Sequalize有一种方法可以获得这样的记录计数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,
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,否则就需要它