在我的数据库中,我有一个需要坐标值的表。
这样的值被存储为
Point DataType
但是,当我尝试获取这样的值时,GO 以错误响应:
unsupported Scan, storing driver.Value type []uint8 into type *models.Point
这是我的模特
type Business struct {
ID int `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Owner string `json:"owner,omitempty"`
Coordinates Point `json:"coordinates,omitempty"`
Reason string `json:"reason,omitempty"`
BusinessBranches []BusinessBranches `json:"reason,omitempty"`
}
这是点类型模型
type Point struct {
X float64 `json:"lat"`
Y float64 `json:"lon"`
}
在我的 Controller 中,我称之为业务选择。
func (b *BusinessRepoImpl) Select() ([]models.Business, error) {
business_list := make([]models.Business, 0)
rows, err := b.Db.Query("SELECT id, name, owner, coordinates, reason FROM business")
if err != nil {
return business_list, err
}
for rows.Next() {
business := models.Business{}
err := rows.Scan(&business.ID, &business.Name, &business.Owner, &business.Coordinates, &business.Reason)
if err != nil {
fmt.Println(err)
break
}
business_list = append(business_list, business)
}
err = rows.Err()
if err != nil {
return business_list, err
}
return business_list, nil
}
任何人都知道如何解析这样的 DataType,所以我可以读取并存储它?
谢谢。 :)
最佳答案
正如我所看到的,您需要设置一个具有当前纬度、经度的结构,然后从数据库中解码。
关于postgresql - GoLang 解析点数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57873989/