我擴大我的申請,我需要加入我之前曾與Sequelize創建了兩個型號,它們分別爲:Sequelize的hasMany加入協會
膳食
sequelize.define('meal', {
mealId: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
quantity: {
type: DataTypes.DECIMAL,
allowNull: false
},
period: {
type: DataTypes.INTEGER,
allowNull: false
}
})
食品
sequelize.define('food', {
idFood: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
nameFood: {
type: DataTypes.STRING,
allowNull: false
}
})
我增加了以下關係:
db.food.hasMany(db.meal, {as : 'Food', foreignKey : 'idFood'});
此行膳食增加了一個idFood列
快速解釋是怎麼回事,食品與許多食物(廢話),如麪包,大米,豆類等表膳食是一張表格,用於標識用戶選擇了哪些食物和他們的細節。
因此,我的理解是,膳食有許多食品(我加之前),但食品並不需要與膳食任何關係,因爲它只是保存數據後沒有改變我首先填充它。但是,當我試圖加入他們的行列:
db.meal.findAll({ include : [db.food] }).then(function (meals) {
console.log(JSON.stringify(meals));
});
我得到了以下錯誤:
Unhandled rejection Error: food is not associated to meal!
誰能解釋我應該怎麼辦呢?我認爲這與這些關係有關,但我無法找到關於我應該做什麼的一個好的解釋。
謝謝!
編輯:閱讀文檔(again),這個例子是有道理的,但我不認爲這個例子適用於我的情況,因爲在他們的例子中,用戶有一個任務,任務屬於用戶。但在我的情況下,食物不屬於膳食,因爲許多膳食可以有不同數量(或不同用戶)的相同食物。
優秀!這給了我想要的結果,只是最後一個問題。 我在打印JSON.stringify(餐食),它顯示了數據的每個部分,但是如果我想自己訪問其中的一些值,怎麼辦?我能做到嗎? – leofontes
像訪問每個食物? –
沒關係,我明白了,非常感謝你! – leofontes