我有以下从 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));
});
谢谢
最佳答案
您是否将 translations
与 Key-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/