使用 Sequelize.js ORM 查询多个模型 [英] Querying multiple models with Sequelize.js ORM

查看:41
本文介绍了使用 Sequelize.js ORM 查询多个模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要选择所有SPR_TYPE_UMSPR_TYPE_ASSETS 进行编辑窗口,但只有一个SPR_TYPE_ASSETS.

I need to select all SPR_TYPE_UM and SPR_TYPE_ASSETS for editing window, but one SPR_TYPE_ASSETS.

 router.get('/edit/:assetId', function (req, res) {
      models.SPR_ASSET.findAll({
        include: [models.SPR_TYPE_UM, models.SPR_TYPE_ASSETS],
        // need to include all um and types here
        where: { ID_ASSET: req.params.assetId}
      }).then(function(data) {
        console.log(data);
        res.render('assets/edit', {
          title: 'Assets specification',
          data: data
        });
      });
    });

协会

SPR_ASSET.belongsTo(models.SPR_TYPE_UM, {foreignKey: 'ID_TYPE_UM', onUpdate: "NO ACTION"});
SPR_ASSET.belongsTo(models.SPR_TYPE_ASSETS, {foreignKey: 'ID_TYPE_ASSETS', onUpdate: "NO ACTION"});
SPR_TYPE_UM.hasMany(models.SPR_ASSET, {foreignKey: 'ID_TYPE_UM'});
SPR_TYPE_ASSETS.hasMany(models.SPR_ASSET, {foreignKey: 'ID_TYPE_ASSETS'});

也许我有错误的关联,还是应该使用原始查询来执行此操作?此查询仅提供来自 SPR_ASSETSPR_TYPE_UMSPR_TYPE_ASSETS 的一条记录.

Maybe I have wrong associations, or should I do this with raw query? This query give only one record from SPR_ASSET, SPR_TYPE_UM and SPR_TYPE_ASSETS .

我需要来自 SPR_ASSET 的一条记录以及来自 SPR_TYPE_UMSPR_TYPE_ASSETS 的所有记录.

I need one record from SPR_ASSET and all records from SPR_TYPE_UM and SPR_TYPE_ASSETS.

推荐答案

对我来说这就是解决方案,也许有更好的方法来做到这一点

For me that was solution, maybe there was better ways to do it

router.get('/edit/:assetId', function (req, res) {
    models.SPR_ASSET.findAll({
          where: { ID_ASSET: req.params.assetId}
        }).then(function(SPR_ASSET_DATA) {
          models.SPR_TYPE_UM.findAll().then(function(SPR_TYPE_UM_DATA){
              models.SPR_TYPE_ASSETS.findAll().then(function(SPR_TYPE_ASSETS_DATA){
                  var data ={
                      SPR_ASSET: SPR_ASSET_DATA,
                      SPR_TYPE_UM: SPR_TYPE_UM_DATA,
                      SPR_TYPE_ASSET: SPR_TYPE_ASSETS_DATA
                  }
                  console.log(data);
                  res.render('assets/edit', {
                  title: 'Справочник спецификаций',
                  data: data
                  });
              })
          })

        });
    });
};

这篇关于使用 Sequelize.js ORM 查询多个模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆