次のように sequelize を使用してデータベースからすべてのオブジェクト リストを出力しようとしています。where 句に ID を追加したので、データが整理された状態になりたいと思っています。
exports.getStaticCompanies = function () {
return Company.findAll({
where: {
id: [46128, 2865, 49569, 1488, 45600, 61991, 1418, 61919, 53326, 61680]
},
attributes: ['id', 'logo_version', 'logo_content_type', 'name', 'updated_at']
});
};
しかし問題は、レンダリング後、すべてのデータが次のように整理されることです。
46128, 53326, 2865, 1488, 45600, 61680, 49569, 1418, ....
調べたところ、ID や名前でソートされていません。解決方法を教えていただけますか。
ベストアンサー1
Sequelize では、order by 句を簡単に追加できます。
exports.getStaticCompanies = function () {
return Company.findAll({
where: {
id: [46128, 2865, 49569, 1488, 45600, 61991, 1418, 61919, 53326, 61680]
},
// Add order conditions here....
order: [
['id', 'DESC'],
['name', 'ASC'],
],
attributes: ['id', 'logo_version', 'logo_content_type', 'name', 'updated_at']
});
};
order
オブジェクトの配列を追加した方法がわかりましたか?
order: [
['COLUMN_NAME_EXAMPLE', 'ASC'], // Sorts by COLUMN_NAME_EXAMPLE in ascending order
],
編集:
オブジェクトが Promise 内で受信されたら、オブジェクトを順序付けする必要がある場合があります.then()
。カスタム順序に基づいてオブジェクトの配列を順序付ける方法については、次の質問を確認してください。