【发布时间】:2021-06-04 18:16:21
【问题描述】:
我已经尝试过这个答案中给出的建议,但得到了同样的错误https://stackoverflow.com/a/66134536/12761193
当我只使用订单时,它工作得很好
下面是原始的 sql 查询
SELECT "id", "firstName", "lastName", "photo", 6371 * acos(cos(radians(21.204578)) * cos(radians(latitude)) * cos(radians(72.838911) - radians(longitude)) + sin(radians(21.204578)) * sin(radians(latitude))) AS "distance" FROM "Users" AS "User" WHERE ("User"."id" != 1 AND "User"."distance" <= 29.7) ORDER BY "distance" ASC LIMIT 10 OFFSET 0;
db.User.findAll({
attributes: ["id", "firstName", "lastName", "photo", [db.sequelize.literal("6371 * acos(cos(radians(" + latitude + ")) * cos(radians(latitude)) * cos(radians(" + longitude + ") - radians(longitude)) + sin(radians(" + latitude + ")) * sin(radians(latitude)))"), 'distance']],
order: [[db.sequelize.literal(`"distance"`), 'ASC']],
where: db.sequelize.where(db.sequelize.literal(`"distance" <= ${km} AND "id" != ${1}`)),
limit,
offset
})
.then(function (data) {
console.log(data);
res.json({
response_code: 'SUCCESS',
data: data
});
}).catch(err => {
console.log(err);
res.status(500).end();
})
【问题讨论】:
-
你用的是什么sequelize版本?
-
续集版本为6.6.2
标签: node.js postgresql sequelize.js