前面简单的写下了Find方式基于索引的检索,见《MongoDB的GeoSpatial索引》好久没把这个补充完整,刚写完这边整体的检索代码,趁热打铁,写完这篇。 Find查询,仅仅能根据2d坐标按距离排序的POI点,查询出列表以后还得自己计算距离,实际开发的同学肯定会思考这点,既然有了排序功能那么肯定有拿到距离的数据了。 参考这两个视频,蛮好的,英语比较不好,听了好多遍看着文档,弄明白了: http://www.10gen.com/presentations/mongosf-2011/geospatial-indexing-mongodb http://www.10gen.com/presentations/mongosf2011/wordsquared GeoNear命令,是基于db的command,而不是基于collection的find,也就是需要通过runcommand执行,具体语法如下: db.runCommand({ geoNear : “collectionName” , near : [120.123456,30.654321], num : 10 } ) 解释下这个命令:就是查询geoNear的collection中,距离near指定点最近的10条记录,简单吧?结果如下: { “ns” : “poi.collectionName”, “near” : “1100110000001111110000001111110000001111110000001111″, ”results” : [ { “dis” … 继续阅读