Допустим, у меня есть 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: []
на модели, но это не исчезнет.
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
.
b
автоматически включает свойство с данными из соединительной таблицы, которое я не хочу включать в набор результатов, чтобы сэкономить на передаче данных.
JSON.parse(JSON.stringify(sequelizeresults.rows))
и сопоставить их, чтобы удалить свойство junction_table из каждого события перед отправкой клиенту.