我需要在postgres數據庫中插入/更新點列類型。將POINT插入postgres數據庫
我使用node-postgres
使用POSTGRES管理面板生成的腳本顯示瞭如何實現從緯度和經度點更新查詢作爲
UPDATE public.places SET id=?, user_id=?, business_name=?, alternate_name=?, primary_category=?, categories=?, description=?, address=?, city=?, state=?, country=?, zip=?, point WHERE <condition>;
?
我已經看到幾個使用POSTGIS的答案,但無法讓它工作。我們可以使用point '(2,1)'
,但這不適用於pg查詢。
我現在擁有的一切:
var config = {
user: 'postgres',
database: 'PGDATABASE',
password: 'PGPASSWORD!',
host: 'localhost',
port: 5432,
max: 10,
idleTimeoutMillis: 30000
};
以及更新部分:
app.post('/updatePlaces', function(req, res, next) {
console.log("Update");
console.log(req.body.places);
pool.query('UPDATE places SET address = $1, alternate_name = $2, business_name = $3, categories = $4, city = $5, country = $6, description = $7, point = $8, primary_category = $9, state = $10, zip = $11', [req.body.places.address, req.body.places.alternate_name, req.body.places.business_name, req.body.places.categories, req.body.places.city, req.body.places.country, req.body.places.description, (req.body.places.point.x, req.body.places.point.y), req.body.places.primary_category, req.body.places.state, req.body.places.zip], function(err, result) {
if(err) {
console.log(err);
return err;
}
res.send(result.rows[0]);
});
});
嘗試過許多不同的方式爲通過點:
- (req.body.places.point .x,req.body.places.point.y)
- point(req.body.places.point.x,req.bod y.places.point.y)
- 點 '(2,1)'
所有上述拋出錯誤。我需要使用POSTGIS嗎?
使用[pg-promise](https://github.com/vitaly-t/pg-promise)時可以自動完成。如果你有興趣,那麼我會用例子添加一個答案;) –
是的請@ @ vitaly-t –