node.js - 用 Sequelize 返回外键的表数据

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

我有以下从 Sequelize 返回的数据,但我想要来自 Key-table 的另一个值而不是 ID_Key(例如:KeyName,在 Key-table 中可用)。

[
{"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));
});

谢谢

最佳答案

您是否将 translationsKey-table 相关联?您可以在查询中使用 include 属性对关联模型进行 include。例如 :
假设您有一个名为 Key 的模型与您的 Translations 模型相关联,并且这些模型之间有 1-N 关联,如下所示:
Key.hasMany(Translation, {foreignKey: 'ID_Key'});Translation.belongsTo(Key, {foreignKey: 'ID_Translation'});
你可以做:

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

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

查看更多文档:http://docs.sequelizejs.com/manual/models-usage.html#eager-loading

关于node.js - 用 Sequelize 返回外键的表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57153491/

相关文章:

javascript - 播放dialogflowAPI音频响应的Web应用程序

node.js - Watson 使用套接字进行文本转语音

java - 如何编写 Spring Data 方法名称来检索列中的所有元素?

java - 为什么 Hibernate 不填充这个外键列

asp.net-mvc-4 - MVC4 Razor 下拉列表与外键绑定(bind)

javascript - express.js 应用程序没有响应

javascript - 如何向用户发送大文件? Node Telegram Bot API

java - 具有相同类的父子的 JPA 映射

mysql - 我正在尝试使用具有可变 FK 的架构创建一个表(订单)

python - 如何在 SQLAlchemy 中指定外键列值?