P粉2450036072023-09-06 00:38:24
如果您的模型結構類似於item_master
有許多project_master
,並且project_master
有許多workspace_master
,那麼以下sequelize查詢將與async/await
一起應用。
當我編輯我的答案。正如您在評論中所說,您有模型結構,例如工作區有許多項目,項目有許多項目。然後 Sequelize 查詢將類似於:
const getResult = async (workpace_id, company_id = 4) => { const result = await workspace_master.findAll({ subQuery: false, include: [ { model: project_master, as: 'project_masters', // this is your alias defined in model attributes: ['id','foo','bar'], include: [ { model: item_master, as: 'item_masters', // this is your alias defined in model attributes: ['id','foo','bar'] } ] } ], where: { id: workspace_id, company_id: company_id } }); if(!result || !result.length) return res.send('Something went wrong!'); return res.send(result); }
現在嘗試一下,我希望這能解決您的問題。
P粉3005417982023-09-06 00:00:17
const item = await Item.findAll({ where: { status: { [Op.ne]: 99 }, '$project.workspace.company_id$': { [Op.eq]: req.user.companyId } }, include: { model: Project, as: 'project', attributes: ['id'], include: { model: Workspace, as: 'workspace', attributes: ['id', 'companyId'], where: { companyId: req.user.companyId }, }, } })
這正在按我想要的方式工作。