用Sequelize返回外键表数据

时间:2019-07-22 20:46:08

标签: node.js orm foreign-keys sequelize.js

我从Sequelize返回了以下数据,但我希望从键表中获得另一个值而不是ID_Key(例如:键名,该值在键表中可用)。

[
{"ID_Translation":1,"ID_Language":1,"ID_Key":2,"TargetText":"TextTranslation2"},
{"ID_Translation":2,"ID_Language":1,"ID_Key":1,"TargetText":"TextTranslation1"},
{"ID_Translation":3,"ID_Language":1,"ID_Key":3,"TargetText":"TextTranslation3"}
]

我的查询

Translation.findAll({
  where: {
    ID_Language: 1,
  }
}).then(Translations => {
  console.log("All Translations:", JSON.stringify(Translations));
});

谢谢

1 个答案:

答案 0 :(得分:0)

您将translationsKey-table关联了吗?您可以使用查询中的include属性include关联模型。例如 : 假设您有一个与Key模型相关联的名为Translations的模型,并且在这些模型之间具有1-N关联,如下所示:

Key.hasMany(Translation);

Translation.belongsTo(Key);

您可以这样做:

Translation.findAll({
  where: {
   ID_Language: 1,
  },
  include: [
   Key
  ],
})

当您获取所有Translation时,由于关联,您将在翻译对象中拥有一个Key属性。即eager loading

有关文档的更多信息:http://docs.sequelizejs.com/manual/models-usage.html#eager-loading