sequelize не включает таблицу соединений в связанные данные модели

1

Допустим, у меня есть 2 модели, User и Event. Они настроены как am: m отношения User.belongsToMany(Event) и Event.belongsToMany(User). Все это работает отлично, но когда я делаю User.findAndCountAll({include: [{model: Event}]}), результат json для result.rows выглядит так:

[
    ...
    {
        userdata...,
        events: [ // included by model relation
        ...included event data...,
        junction_table: { // I dont want this data sent back to client, just above data
            ...data i dont want...
        }
    }
...
]

я хочу

[
    {
    userdata...,
    events: [
        { included event data without junction_table }
    ]
    }
]

Есть ли способ вырезать таблицу junction_table, которая по какой-то причине автоматически включается в каждое отдельное событие без. Сопоставления данных и перестройки? Я бы предпочел не отправлять все эти данные, которые мне не нужны по проводам для клиентов все время. Я попробовал только указать attributes: [] на модели, но это не исчезнет.

  • 0
    В настоящее время мое рабочее решение состоит в том, чтобы преобразовать результаты sequelize в POJO с помощью JSON.parse(JSON.stringify(sequelizeresults.rows)) и сопоставить их, чтобы удалить свойство junction_table из каждого события перед отправкой клиенту.
Теги:
sequelize.js

1 ответ

0
SELECT *
FROM a
JOIN b ON EXISTS
        ( SELECT * FROM junction j
        WHERE j.a_id = a.a_id
        AND j.b_id = b.b_id
        );

Это работает только в том случае, если таблица соединений уникальна на {a_id, b_id}, причем a_id, b_id являются первичными ключами a и b.

  • 0
    Я не уверен, что вы понимаете мой вопрос. Соединения через секвестирование модельных отношений работают правильно. Проблема в том, что b автоматически включает свойство с данными из соединительной таблицы, которое я не хочу включать в набор результатов, чтобы сэкономить на передаче данных.
  • 0
    Ну, это способ сделать это join_without_the_columns_from_the_junction_table_in the_result_set в простом SQL. Может быть, вы сможете найти способ для вашего фреймворка генерировать подобный код.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню