gpt4 book ai didi

mongodb - 如何使用 mgo 编写查询 $centerSphere

转载 作者:IT王子 更新时间:2023-10-29 02:03:16 26 4
gpt4 key购买 nike

我已阅读文档 here讨论编写查询以获取半径内的某个位置:

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

现在我尝试使用 mgo 驱动程序编写它,但我不知道如何在此处编写我尝试过的内容:

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)

是的,上面的代码绝对不起作用,因为我不知道如何翻译这个 [ [ -73.93414657, 40.82302903 ], 5/3963.2 ] in go?

最佳答案

对于 $centerSphere您必须在 []interface{} 类型的 slice 中传递中心点和半径,其中该点也是包含其坐标的 slice ,也可以是 []interface 类型{}

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

查看相关/可能重复的问题:

$literal usage in Golang-mgo

关于mongodb - 如何使用 mgo 编写查询 $centerSphere,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43659678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com