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 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题