模型定义:
sequelize.define('Parent', {name: DataTypes.STRING})
sequelize.define('Child', {name: DataTypes.STRING})
协会:
Parent.hasMany(Child, {
foreignKey: 'parent_id',
as: 'child'
})
Child.belongsTo(Parent)
包含功能:
Parent.findByPk(pk, {
include: [{
model: Child,
as: 'child',
where: {
name: 'benny'
}
}]
})
返回的内容(正常行为):
{
"id": 1,
"name": "parent name",
"child": [
{
"id": 2
"name": "benny",
"parent_id": 1
}
]
}
我希望它返回什么(我在文档中看不到任何支持或提及)
{
"id": 1,
"name": "parent name",
"child": {
"id": 2
"name": "benny",
"parent_id": 1
}
}
差异为Child
配置为作为对象返回
有人遇到过这个挑战吗?
答案 0 :(得分:0)
http://docs.sequelizejs.com/manual/tutorial/associations.html
Parent.hasOne(孩子,{ foreignKey:'parent_id', 如:“孩子” })
否则它是一个数组,因为父级可以有多个。
Parent.hasMany(Child,{ foreignKey:'parent_id', 如:“儿童” })
如果您真的只关心第一个孩子或单身孩子。.Parent.children [0]
您可以将自己的函数添加到称为child的Parent上,该函数仅返回children数组中的第一个函数。还是最新的日期。.取决于您的功能。