【问题标题】:Aggregating models "through" other models in SQL?在 SQL 中“通过”其他模型聚合模型?
【发布时间】:2017-10-20 19:41:38
【问题描述】:

我有一个基于 sequelize 的后端 express API。在我的 sequelize 模型中,Citizen 属于 StreetTown 属于 State。我可以轻松计算Street 中的公民,例如:

return db.Citizen.aggregate('value', 'count', {
    where: { 
         '$Town.name$': townName
    },
});

但是,我希望能够计算 TownState 中的公民,即使公民与这些模型没有直接关联。这可能吗?如果可以,我该怎么做?

【问题讨论】:

    标签: mysql sql node.js typescript sequelize.js


    【解决方案1】:

    您需要做的是一个嵌套的包含,这样您就可以连接所有模型,如下所示:

    db.Citizen.count({
        include: [{
            model: db.Street,
            include : [{
              model: db.Town,
              where:{
                TownName : name
              }
            }]
          }]
      })
      .then(function(countCitizen) {
          return res.json(countCitizen);
      })
      .catch(function(err) {
    
      });
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多