0
尝试使用内置ORM便利性的sequelize包括具有原始PostGIS查询的语法。如何使用sequelize执行原始PostGIS查询使用包括
此调用正确联接相关promotionImage和类别表只是因为我需要它,但它并不地理查询我的数据库就像我需要它:正确
promotion.findAll({
include: [{
model: promotionImage
}, {
model: category
}]
}).then(promoters => {
res.json(promoters)
}).catch(err => {
console.log('ERROR: ', err)
})
在另一方面,这种查询发现所提供的纬度/经度范围内的“促销活动”,但它不能正常参加相关promotionImage和类别表:
const query = '\
SELECT * \
FROM "promotions" \
WHERE "promotions"."location" && ST_MakeEnvelope(:southWestLng, :southWestLat, :northEastLng, :northEastLat)'
replacements = {
southWestLng,
southWestLat,
northEastLng,
northEastLat
}
db.sequelize.query(query, {
replacements,
type: sequelize.QueryTypes.SELECT,
model: promotion,
include: [{
model: promotionImage
}, {
model: category
}]
}).then(promoters => {
res.json(promoters)
}).catch(err => {
console.log('ERROR: ', err)
})
有没有办法既查询使用ST_MakeEnvelope
语法和包括从数据其他型号sequelize和postGIS?
它看起来像你的回答让我很接近。但它没有返回任何结果。我认为问题在于postGIS查询不应该有'='符号,而是'&&'。所以你的答案格式化查询:'WHERE“promotion”。“location”= ST_MakeEnvelope(...'当它应该是:WHERE“promotions”。“location”&& ST_MakeEnvelope(...' – Scott
我错过了,我编辑了我的答案@Scott –