node.js - Sequelize连接和关系

标签 node.js database join foreign-keys sequelize.js

我有一个正在运行的数据库,但我无法在两个表之间执行连接。我已经在另外两个表之间进行了联接,但这个表不起作用。

在我的 db.js 文件中,我在表之间建立了以下关系:

db.diet.hasMany(db.meal, {as : 'Diet', foreignKey : 'dietId'});

在我的 server.js 文件中,我正在尝试构建此查询:

db.meal.findAll({
    include : [db.diet],
    where : {
        dietId : idDiet
    }
}).then(function (meals) {
    res.json(meals)
});

这给了我以下错误:

ReferenceError: idDiet is not defined

我也试过这样查询饮食表:

db.diet.findAll({
    include :[db.meal],
    where : {
        idDiet : dietId
    }
}).then(function (meals) {
    res.json(meals);
});

但它也给我一个错误:

ReferenceError: dietId is not defined

关于如何改进它有什么想法吗?

非常感谢,任何帮助都将不胜感激。如果需要更多信息,请告诉我。

最佳答案

这个:

db.diet.hasMany(db.meal, {as : 'Diet', foreignKey : 'dietId'});

应该是这样的:

db.diet.hasMany(db.meal, {as : 'Meals'});

你是说 diet 有很多 meal 模型,称为 Meals 所以你可以包括 Meals 饮食

db.diet.findAll({
  include: [db.meal] // include the meal in the query ("join")
}).then((diet) => {
  // diet.Meals is a array of "meal" models that
  // belongs to the queried "diet"
});

我在这里回答过类似的问题:https://stackoverflow.com/a/39822966/3254198

关于node.js - Sequelize连接和关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39811769/

相关文章:

c++ - 将数据从一个应用程序单向发送到另一个应用程序的最佳实践

Node.JS + CentOS + node-waf

javascript - “变量”: function(req, res){} 是什么意思?

database - 关于排序的优化器统计信息

c# - CommandText 属性未正确初始化 (MySqlDataReader)

php - 使用一个参数 pdo 查询两个表

python - Pandas 合并101

node.js - Node.js 中的子进程在同步代码行之间神秘退出

java - 可以与 Win 98 和 Java 一起使用的数据库吗?

mysql - 使用 concat 和 filesort 时 mysql 查询速度变慢