【问题标题】:Query in Sequelize RelationshipsSequelize 关系中的查询
【发布时间】:2019-12-02 08:32:01
【问题描述】:

您好,我需要从与我相关的 3 个表中获取信息,但我不知道如何使用 sequelize 执行此操作,我在文档中没有找到有关如何执行此操作的任何内容

型号:

const { Model, DataTypes } = require ('sequelize');
const sequelize = require('../database/index');

class Products extends Model {
    static init(sequelize){
        super.init({
            name: DataTypes.STRING,
            float: DataTypes.DOUBLE,
            price: DataTypes.DOUBLE
        }, {sequelize, tableName:'products'});
    }
    static associate(models){
        this.belongsTo(models.SubCategory, { foreignKey: 'subcategory_id', as:'subcategory'});
        this.belongsTo(models.Exteriors, { foreignKey: 'exterior_id', as:'exteriors'});
        this.belongsTo(models.Types, { foreignKey: 'type_id', as:'types'})
    }
}

module.exports =  Products;

功能:

async getAllProduct(req,res){
    try {
        const products = await Products.findAll({});
        if(result){return res.status(200).json({result})}
        else{return res.status(400).json({result: 'failed to get Products'})}
     } catch (error) {
         console.error(error);
     }
}

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

    您正在寻找即时加载,这涉及在解析器上使用 include 以在一个查询中嵌套关联。 Include 还可以使用 where、order 等工具来过滤结果。

    Products.findAll({
    include: [
       {model: models.SubCategory, as: 'subcategory', include: [
         {model: models.Exteriors, as: 'exteriors', include: [/* etc */]
       ]}
      ]
      ]}.then(function(products) {
      console.log(JSON.stringify(products))
    

    【讨论】:

      猜你喜欢
      • 2022-01-26
      • 2016-08-14
      • 2016-12-15
      • 1970-01-01
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-19
      相关资源
      最近更新 更多