1 回答

TA貢獻1788條經驗 獲得超4個贊
不幸的是,sequelize在have和order子句中使用別名存在一些問題。因此,sequelize.literal在這種情況下我總是使用方法。
CubbersShopsData.findOne({
where: { cubbersId: data.cubbersId },
include: [ CubbersAvailability ],
attributes: [[sequelize.literal("3959 * acos(cos(radians("+shopLatitude+")) * cos(radians(shopLatitude)) * cos(radians("+shopLongitude+") - radians(shopLongitude)) + sin(radians("+shopLatitude+")) * sin(radians(shopLatitude)))"),'distance']],
having: sequelize.literal('distance < 20'),
order: sequelize.literal('distance ASC'),
logging: console.log
}).then(dataList=>{
res.send(dataList)
}).catch(error=>{
res.send('error')
});
添加回答
舉報