查找附近的人-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的算法實現問題,查出來的附近的人可能距離排序不是很準,單總體趨勢是正確的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章