dqch34769 2017-04-27 13:43
浏览 118
已采纳

如何使用mgo编写查询$ centerSphere

I have read the documentation here talks about writing query to get some location within the radius:

db.restaurants.find({ location:
   { $geoWithin:
      { $centerSphere: [ [ -73.93414657, 40.82302903 ], 5 / 3963.2 ] } } })

Now I try to write it using mgo driver but I don't get the idea how to write it here what I have tried :

var cites []City

collection := mongo.DB("Db").C("Collection")

err = collection.Find(bson.M{
    "location": bson.M{
        "$geoWithin": bson.M{
            "$centerSphere" : [ [ -73.93414657, 40.82302903 ], 5 / 3963.2 ],
        },
    },
}).All(&cites)

Yes above code absolutely not working becuase I don't know how to translate this [ [ -73.93414657, 40.82302903 ], 5 / 3963.2 ] in go?

  • 写回答

1条回答 默认 最新

  • dongtuwu8548 2017-04-27 13:57
    关注

    For $centerSphere you have to pass a center point and a radius in a slice of type []interface{}, where the point is also a slice containing its coordinates, can also be of type []interface{}.

    err = collection.Find(bson.M{
        "location": bson.M{
            "$geoWithin": bson.M{
                "$centerSphere": []interface{}{
                    []interface{}{-73.93414657, 40.82302903}, 5 / 3963.2,
                },
            },
        },
    }).All(&cites)
    

    See a related / possible duplicate question:

    $literal usage in Golang-mgo

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)