Maison > Questions et réponses > le corps du texte
P粉2450036072023-09-06 00:38:24
Si la structure de votre modèle est similaire à item_master
有许多 project_master
,并且 project_master
有许多 workspace_master
,那么以下sequelize查询将与async/await
Postulez ensemble.
Au fur et à mesure que je modifie ma réponse. Comme vous l'avez dit dans vos commentaires, vous avez votre structure de modèle, par exemple, l'espace de travail comporte de nombreux projets, le projet comporte de nombreux projets. La requête Sequelize ressemblera alors à :
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); }
Essayez-le maintenant, j'espère que cela résoudra votre problème.
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 }, }, } })
Cela fonctionne comme je le souhaite.