に参加して、私は私が以前に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)を読むと意味がありますが、その例ではユーザーにタスクがあり、タスクがユーザーに属しているため、この例は自分の状況に当てはまるとは思われません。しかし、私のケースでは、食事は食事に属しません。なぜなら、多くの食事は、同じ量の食べ物を異なる量(または異なるユーザー)で食べることができるからです。
Excelent!これで私の望む結果が得られました。最後の質問です。 JSON.stringify(食事)を印刷していますが、データのすべての部分が表示されますが、私はそれをすることができますか? – leofontes
各食品にアクセスするのが好きですか? –
心配しないで、私はそれを考え出した、ありがとう! – leofontes