在尝试从主表查询时,我试图从关联表中查找条目数组。
当我尝试查询时,当前在关联表下只有一个条目。 例如,我得到如下输出。
{
"id": 37,
"name": "Mr Tom",
"books": {
"id": 1278,
"name": "Book 1",
}
}
如您所见,books部分作为数组中的对象出现。我希望它是一堆书。
以下是我用来查询数据的代码。
const authorId = req.params.id;
const AuthorDetails = await AUTHOR.findOne({
attributes: [
'id',
'name',
],
where: {
id: authorId,
},
include: [
{
model: BOOKS,
attributes: ['id','name'],
},
],
raw: true,
nest: true,
});
作者与书籍之间的关系是一对多的。哪里一个 一本书只能有一位作者,但一位作家可以有很多本书。 定义如下。
AUTHORS.hasMany(BOOKS);
BOOKS.belongsTo(AUTHORS);
edit:我注意到,当我删除条件id:authorId时,它会复制author对象并给出一本唯一的book。例如
[
{
"id": 37,
"name": "Mr Tom",
"books": {
"id": 1278,
"name": "Book 1",
}
},
{
"id": 37,
"name": "Mr Tom",
"books": {
"id": 1279,
"name": "Book 2",
}
}
]