const { Sequelize } = require('sequelize'); const mdl_Users = require('./models/users/users.mdl'); const { mdl_UserGroups, mdl_UserGroupMembers } = require('./models/users/user_groups.mdl'); const sequelize = require('./config/db.config'); (async () => { try { await sequelize.authenticate(); console.log('DB connected OK'); // Find any group_id to test with const anyGroup = await mdl_UserGroups.findOne({ attributes: ['group_id'], paranoid: false }); console.log('sample group_id:', anyGroup?.group_id); const group_id = anyGroup?.group_id; const order = [[Sequelize.json('personal_info.name.full_name'), 'ASC']]; const result = await mdl_Users.findAndCountAll({ attributes: ['user_id'], order, limit: 3, offset: 0, include: [{ model: mdl_UserGroupMembers, where: { group_id }, attributes: [], required: true, }], logging: (sql) => console.log('\n[SQL]', sql), }); console.log('SORT+JOIN RESULT COUNT:', result.count, 'rows:', result.rows.length); } catch (e) { console.error('ERROR:', e.message); } finally { await sequelize.close(); } })();