Tengo una base de datos de postgres que se ve así:
Quiero consultar esos datos y devolver solo algunos de ellos. A continuación se muestra la función que escribí.
ciudadanoControlador.js
exports.getAllCitizen = async (req, res) => { const { page, size } = req.query; //Check if theres a NIK filter const nik = req.query.nik; const condition = nik ? { nik: { [Op.iLike]: `%${nik}%` } } : null; //Pagination const { limit, offset } = getPagination(page, size); try { const response = await Penduduk.findAndCountAll({ where: condition, attributes: ["id", "nik", "profil_penduduk"], limit, offset, }); const data = getPagingData(response, page, limit); return res.status(200).send(data); } catch (err) { console.log(err); } };Aquí está la respuesta de la función anterior:
El problema es que no quiero devolver todos los datos del objeto profil_penduduk , solo quiero obtener nama , alamat y status_warga de él.
¿Cómo puedo lograr eso? Traté de hacer como:
attributes: ["id", "nik", "profil_penduduk.nama","profil_penduduk.alamat","profil_penduduk.status_warga"]Pero no funcionó.
La mejor manera de obtener los detalles de la tabla de referencia para usar include como
const response = await Penduduk.findAndCountAll({ where: condition, attributes: ["id", "nik"], include: [ { model: profil_penduduk, // name of reference table attributes: ['nama' , 'alamat', 'status_warga'], } ], limit, offset, }); ```