Я пытаюсь найти массив записей из связанной таблицы при выполнении запросов из основной таблицы.
В настоящее время я получаю только одну запись под связанной таблицей, когда пытаюсь выполнить запрос.Например, я получаю вывод следующим образом.
{
"id": 37,
"name": "Mr Tom",
"books": {
"id": 1278,
"name": "Book 1",
}
}
Как видите, часть книг представляет собой объект в массиве.Я ожидаю, что это будет массив книг.
Ниже приведен код, который я использую для запроса данных.
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, оно дублирует объект автора и дает уникальную книгу.Например
[
{
"id": 37,
"name": "Mr Tom",
"books": {
"id": 1278,
"name": "Book 1",
}
},
{
"id": 37,
"name": "Mr Tom",
"books": {
"id": 1279,
"name": "Book 2",
}
}
]