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/

相关文章:

java bean : difference between persistent field and persistent property?

java - 从 Java 对象更新/合并 SQLite 数据库表

java - 即使存在外部数据库,DatabaseMetada.getImportedKey 也为空

sql - O1RA-0229 违反完整性约束 - 未找到父 key

node.js - 如何正确关闭 Node.js 服务器上的 MongoClient 连接?

node.js - Mocha 在所有类中的所有测试运行后运行

node.js - docker找不到模块 'Sequelize'

python - (仅)使用 SqlAlchemy 生成 SQL 代码

java - 获取FK异常涉及的特定列

node.js - gulp 命令不合并 Laravel 框架中的 JavaScript 文件。给出奇怪的错误