【问题标题】:Sequelize Getting model object from relationsSequelize 从关系中获取模型对象
【发布时间】:2016-12-13 15:13:10
【问题描述】:

当我定义一个关系时,我指定它与什么模型对象相关:

 models.Guest.belongsTo(models.Member, {foreignKey: 'guestId', as: 'guest'});

现在要在查询中使用这种关系,我需要再次指定模型对象:

 Guest.findAll({
    include: models.Member,
    as: 'guest'
 });

在我的设置中,所有关系都定义在一个文件中,而各个模型本身就在文件中。设置定义了模型对象,其中包含所有这些对象 - 并且该事物可用于应用程序逻辑。

我想要的是直接在 Guest 模型对象中定义一些更复杂的查询,以将它们从应用程序中抽象出来。为此,我想找到 models.Member 对象 - 在关系之外的某个地方检索它:

Guest.findMembers = function(){
  return this.findAll({
     include: <that model that guest is related to>,
     as: 'guest'
  });
}

请想象这个例子足够复杂,值得解决。例如,还有更多其他连接和 where 语句。或事后数据处理。

我可以将模型对象传递到每个单独对象的设置中,因此可以访问其兄弟对象。这是我唯一的选择吗?

【问题讨论】:

    标签: node.js orm sequelize.js


    【解决方案1】:

    你也可以在你的包含模式中添加一个包含

    Guest.findMembers = function(){
      return this.findAll({
         include: [{
            model: <that model that guest is related to>,
            as: 'guest',
            include: [{
                model: <that model that guest is related this included model>,
                as: 'setTheAlias',
            }]
         }]
      });
    }
    

    【讨论】:

      猜你喜欢
      • 2017-06-08
      • 2023-03-08
      • 2017-12-19
      • 2022-01-26
      • 1970-01-01
      • 2020-10-03
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多