栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Golang-mgo中的$ literal用法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Golang-mgo中的$ literal用法

完整地说,这是您实际尝试执行的操作:

pipe := DB.C("store").Pipe([]bson.M{    {"$project": bson.M{"location": bson.M{"type": bson.M{"$literal": "Point"}, "coordinates": []interface{}{"$longitude", "$latitude"}}}},    {"$match": bson.M{"location": bson.M{"$geoWithin": bson.M{"$centerSphere": []interface{}{"$coordinates", 10 / 6378.11}}}}},})

问题不在于您的

"Point"
字面意义,仅是巧合。
"Pt"
例如,如果将其更改为,您仍然会看到完全相同的错误消息。

Point
错误消息是指
$centerSphere
,这需要一个中心
和半径。而且您尝试“通过”的方式不起作用。

例如,这适用于:

"$centerSphere": []interface{}{[]interface{}{1.0, 2.0}, 10 / 6378.11}

原始查询没有意义,因为您尝试查找位置在距 其自身 10公里之内的文档,该文档将匹配所有文档。

相反,您希望/应该查询距 特定 位置10公里以内的文档,并且可以将此特定位置的坐标传递给

$centerSphere

myLong, myLat := 10.0, 20.0// ..."$centerSphere": []interface{}{[]interface{}{myLong, myLat}, 10 / 6378.11}

完整的查询:

myLong, myLat := 10.0, 20.0pipe := DB.C("store").Pipe([]bson.M{    {"$project": bson.M{"location": bson.M{"type": bson.M{"$literal": "Point"}, "coordinates": []interface{}{"$longitude", "$latitude"}}}},    {"$match": bson.M{"location.coordinates": bson.M{"$geoWithin": bson.M{"$centerSphere": []interface{}{[]interface{}{myLong, myLat}, 10 / 6378.11}}}}},})


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399603.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号