我在mongoDB中使用$ nearSphere查询。我希望距离和列表按距离排列。
我想在我显示结果的javascript中使用此距离。我用了几个公式来计算地球上各点之间的球面距离。没有给我mongo用于排序的确切距离? 有什么帮助吗?
答案 0 :(得分:1)
如果你使用$geoNear aggregation command,你也会得到计算出的距离。
我今年在presentation given at MongoDB London中发现了它,它描述了使用$ geoNear(幻灯片36和37)以及MongoDB中的其他地理特征。
或者,您可以了解一些MongoDB地理特征如何在以下某些演示文稿中起作用:
我确定你已经通过Google找到了这个,但MongoDB网站有documentation on Geospatial indexes/queries
答案 1 :(得分:0)
这实际上非常简单。要在java中添加,请创建如下所示的查询 e.g。
BasicDBObject distanceQuery = new BasicDBObject();
BasicDBObject sphereQuery = new BasicDBObject();
sphereQuery.put("$nearSphere",new Double[]{lat, lan});
sphereQuery.put("$maxDistance", radiusInKm/6371);
distanceQuery.put("point", sphereQuery);
在回复中你会得到一个“dist”参数,给出用于获取列表的精确距离。