Поиск всех записей связанной таблицы в Sequelize Js - PullRequest
3 голосов
/ 01 июля 2019

Я пытаюсь найти массив записей из связанной таблицы при выполнении запросов из основной таблицы.

В настоящее время я получаю только одну запись под связанной таблицей, когда пытаюсь выполнить запрос.Например, я получаю вывод следующим образом.

{
    "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",
        }
    }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...