查找附近的人-mongodb的实现

最近做一个关于附近的人查询,参考了很多资料:现在市面上主流的做法

1.用数据库

2.用类存

3.用lucene

我选用的是用mongodb自带的查附近的人的方法,代码如下:

DBObject db = new BasicDBObject("cityId", JSON.parse("{$orderby:{cityId: -1}}"));
		DBObject near = new BasicDBObject( "loc",JSON.parse("{$near : [ " + lon + "," + lat + " ] }"));
		DBObject query = new BasicDBObject();
		//query.put("cityId", 110000);
		//near.put("cityId", 110000);
    	DBCursor cur = coll.find(near, query);
		int n = 0;
		while(cur.hasNext()){
			DBObject c = cur.next();
			BasicDBList loc = (BasicDBList)c.get("loc");
		 }

 这种做法可以分页,但是由于mongodb的算法实现问题,查出来的附近的人可能距离排序不是很准,单总体趋势是正确的

猜你喜欢

转载自blueyan.iteye.com/blog/1926770