【问题标题】:Return table data of foreign key with Sequelize用 Sequelize 返回外键的表数据
【发布时间】:2019-07-23 15:15:02
【问题描述】:

我从 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));
});

谢谢

【问题讨论】:

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


    【解决方案1】:

    您是否将 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

    【讨论】:

    • 你能告诉我如何将它添加到mongo并提供上述方法示例输出。
    猜你喜欢
    • 2019-07-08
    • 2020-06-29
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    相关资源
    最近更新 更多