Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb GoLang Mongo GeoJSON_Mongodb_Go_Struct_Geojson - Fatal编程技术网

Mongodb GoLang Mongo GeoJSON

Mongodb GoLang Mongo GeoJSON,mongodb,go,struct,geojson,Mongodb,Go,Struct,Geojson,在Golang中,使用MongoDB,我试图存储GeoJSON对象,同时保留一个2dsphere索引 我无法声明可以同时处理“点”和“多边形”的通用结构,因为“点”具有[]float64坐标字段,而“多边形”具有[]float64坐标字段 您知道如何声明这样的结构吗?您可以尝试在结构中使用接口作为多边形和点的字段。我为您的场景创建了一个简单的程序,如下所示: package main import ( "fmt" ) type figure struct {

在Golang中,使用MongoDB,我试图存储GeoJSON对象,同时保留一个2dsphere索引

我无法声明可以同时处理“点”和“多边形”的通用结构,因为“点”具有
[]float64
坐标字段,而“多边形”具有
[]float64
坐标字段


您知道如何声明这样的结构吗?

您可以尝试在结构中使用
接口
作为
多边形
的字段。我为您的场景创建了一个简单的程序,如下所示:

package main

import (
    "fmt"
)

type figure struct {
    name        string
    coordinates interface{}
}

func main() {

    Point := figure{"Point", [2]float64{2.0, 7.88}}
    Polygon := figure{"Polygon", [2][2]float64{{2.0, 7.88}, {3.0, 7.88}}}
    fmt.Println(Point)
    fmt.Println(Polygon)

}
输出:

{Point [2 7.88]}
{Polygon [[2 7.88] [3 7.88]]}

您可以尝试将
接口
用作结构中的
多边形
的字段。我为您的场景创建了一个简单的程序,如下所示:

package main

import (
    "fmt"
)

type figure struct {
    name        string
    coordinates interface{}
}

func main() {

    Point := figure{"Point", [2]float64{2.0, 7.88}}
    Polygon := figure{"Polygon", [2][2]float64{{2.0, 7.88}, {3.0, 7.88}}}
    fmt.Println(Point)
    fmt.Println(Polygon)

}
输出:

{Point [2 7.88]}
{Polygon [[2 7.88] [3 7.88]]}