如何使用 go pg CRUD Postgres Point 数据类型
How to CRUD Postgres Point data type using go pg
我正在使用 Point 数据类型在 Postgres 数据库中存储坐标。如何将 Point 数据类型映射到 Go lang 数据类型?我没有找到任何相同的文档。
go-pg 没有对点类型的本地支持(从 PostGIS 开始)。
我所做的立交桥(可能不是最好的解决方案,但我确实设法使它起作用)是在我的模型上放置单独的纬度和经度字段,并在查询本身上使用 ColumnExpr
来获取单独的使用 ST_X
(经度)和 ST_Y
(纬度,不要忘记)的值。
型号:
type MyModel struct {
ID int64
Name string
LocationLat float64
LocationLon float64
}
查询:
err := db.Model(&myModel).
Column("id", "name").
ColumnExpr("ST_X(location) AS location_lon").
ColumnExpr("ST_Y(location) AS location_lat").
Where("id = ?", id).
Select()
我正在使用 Point 数据类型在 Postgres 数据库中存储坐标。如何将 Point 数据类型映射到 Go lang 数据类型?我没有找到任何相同的文档。
go-pg 没有对点类型的本地支持(从 PostGIS 开始)。
我所做的立交桥(可能不是最好的解决方案,但我确实设法使它起作用)是在我的模型上放置单独的纬度和经度字段,并在查询本身上使用 ColumnExpr
来获取单独的使用 ST_X
(经度)和 ST_Y
(纬度,不要忘记)的值。
型号:
type MyModel struct {
ID int64
Name string
LocationLat float64
LocationLon float64
}
查询:
err := db.Model(&myModel).
Column("id", "name").
ColumnExpr("ST_X(location) AS location_lon").
ColumnExpr("ST_Y(location) AS location_lat").
Where("id = ?", id).
Select()