#javascript #node.js #postgresql #sequelize.js
#язык JavaScript #node.js #postgresql #sequelize.js
Вопрос:
У меня есть база данных postgres, которая выглядит так :
Я хочу запросить эти данные и вернуть только часть из них. Ниже приведена функция, которую я написал.
citizenController.js
exports.getAllCitizen = async (req, res) =gt; { 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); } };
Вот ответ от функции выше :
Проблема в том, что я не хочу возвращать все данные объекта profil_penduduk, я просто хочу получить из него nama , alamat и status_warga.
Как я могу этого достичь ? Я пытался сделать, как :
attributes: ["id", "nik", "profil_penduduk.nama","profil_penduduk.alamat","profil_penduduk.status_warga"]
Но это не сработало.
Ответ №1:
Лучший способ получить подробную информацию о справочной таблице для использования include
в качестве
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, }); ```