`

查找附近的人-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的算法实现问题,查出来的附近的人可能距离排序不是很准,单总体趋势是正确的

0
7
分享到:
评论

相关推荐

    Spring Boot 实战 - mongodb

    它使得开发者可以快速地在应用程序中实现对MongoDB的操作,无需关注底层的MongoDB驱动程序细节。 **2. 设置MongoDB连接** 在Spring Boot项目中,我们可以通过`application.properties`或`application.yml`配置文件...

    Nodejs-MongoDB实战案例-简易用户管理系统.zip

    对于想要学习或提升Node.js后端开发技能的人来说,这是一个非常实用的学习资源。 首先,`app.js`是整个应用的主入口文件,它初始化了Express应用,并设置了路由和中间件。在Express中,中间件是一种函数,它们按照...

    mongodb-src-r3.2.0.源码 压缩包

    2. **网络层**:MongoDB的网络层负责处理客户端的连接和通信,实现高效的网络I/O,这部分源码可以揭示其如何处理请求和响应。 3. **查询解析器**:解析来自客户端的查询语句,转换为内部可执行的计划。源码中可以...

    spring-security-acl-mongodb:基于 Spring Security MongoDB 的访问控制列表 (ACL) 实现

    Spring Security ACL MongoDB Spring Security 访问控制列表 (ACL) 是一种方便的方式来授予对域对象(例如书籍或联系人列表)的基于用户的权限访问。 默认情况下,Spring Security通过4个SQL表管理ACL,这些SQL表在...

    MongoDB入门以及实现微聊即时通讯功能的Java代码.zip

    - 联系人管理:处理用户添加、删除和查看联系人的逻辑。 - 状态同步:处理在线状态和离线状态,确保消息传递的准确性。 5. **性能优化与安全性** - 索引:为提高查询性能,根据查询需求创建合适的索引。 - 权限...

    mongodb开启SSL传输加密

    在现代网络安全环境中,确保数据在传输过程中的安全性至关重要,SSL(Secure Socket Layer)或其更新版本TLS(Transport Layer Security)正是实现这一目标的关键技术。SSL/TLS可以提供端到端的数据加密,防止中间人...

    cactus:MEAN Stack应用程序-MongoDB,Express,Angular,Node

    **MEAN Stack简介** MEAN Stack(MongoDB、Express、Angular、Node.js)是一个全JavaScript技术栈,用于构建高效、可扩展的Web...对于希望深入学习MEAN Stack或者想要构建类似应用的人来说,这是一个很好的实践案例。

    linux操作系统下的mongodb数据库

    在配置systemd服务文件后,你可以使用“systemctl start mongod”命令启动MongoDB,"systemctl status mongod"查看状态,"systemctl enable mongod"设置开机启动。如果遇到权限问题,可能需要调整数据目录的所有权...

    基于Vue+Nodejs+MongoDB实现的小区社区综合治理管理系统+源代码+文档说明+数据库

    网格管理员登录后可以查询所有小区建档信息,和所有小区房屋信息,人员信息和车辆信息等,可以管理网络信息,新建任务分配给指定小区负责人,处理批阅评价小区负责人处理任务的结果等。网格员登录系统后可以管理自己...

    MongoDB Sharding 机制分析

    不少人都经历过自己的网站、应用由小到大,用户越来越多,访问量越来越大,数据量也越来越大。这当然是好事。但是,以前一个服务器就可以抗下的数据库现在不行了。开始还可以做做优化,再加个缓存。但是再后来,无论...

    RockMongo MongoDB数据库管理工具源码

    对于想要深入了解MongoDB和Web应用开发的人来说,RockMongo源码是一个宝贵的学习资源。它不仅提供了实际的项目经验,还能帮助你理解和掌握数据库管理工具的设计与实现。如果你是开发者,可以尝试对源码进行扩展,为...

    Mongodb的并发访问性能测试的java客户端

    通过查看这些文件,我们可以更详细地了解客户端的设计和实现细节,以及具体的并发策略和性能指标。 总结来说,这个Java客户端为MongoDB并发访问性能测试提供了一个实用工具,涵盖了查询、修改和插入操作。它利用...

    MongoDB 配置以及简单CRUD快速上手

    1. **社交平台**:存储用户信息和动态,利用地理位置索引来实现诸如“附近的人”功能。 2. **游戏领域**:存储玩家数据、游戏进度等信息,利用内嵌文档形式高效地组织和访问数据。 3. **物流行业**:跟踪订单状态...

    使用Express+mongoDB搭建的多人blog系统.zip

    这个系统能够实现用户注册、登录、发布、查看、编辑和删除博客文章的功能,是典型的前后端分离的Web开发实例。下面将详细阐述相关知识点。 一、Express框架 Express是基于Node.js平台的快速、开放、极简的Web开发...

    MongoDB测试javaweb项目demo

    这样,`findByName`方法就自动实现了按姓名查找用户的功能,无需编写具体实现。 本项目"MongoDB测试javaweb项目demo"应该包含了以上所述的MongoDB与Java Web集成的关键步骤,包括连接配置、数据操作以及可能的...

    mongodb的官方手册

    总结来说,MongoDB官方手册是全面了解和学习MongoDB的必备资料,涵盖了从基础概念到高级特性的所有内容,对于任何希望掌握MongoDB的人都是一份宝贵的资源。通过深入学习,开发者能够熟练地运用MongoDB来构建高效、可...

    react + node + antd + mongodb 博客系统

    后端服务由Node.js和MongoDB提供,主要实现了文章查看、发布、评论等功能。 2. **CSDN博客文章**: 另一篇文章介绍了如何使用React、Express和MongoDB搭建一个多人博客平台。这篇文章可能为您提供一些关于如何搭建和...

    学习的mongodb的代码和新的,以及通讯录项目实战

    在通讯录项目中,你可能还需要实现搜索和排序功能,这可以通过MongoDB的查询语法实现。例如,按姓名查找或按年龄排序联系人。 ```javascript // 在Python中按名字查找 cursor = collection.find({"name": "Alice"})...

    Mongodb项目缓存技术 增删改查

    例如,在实现朋友推荐功能时,可能需要计算用户之间的共同好友数量,然后根据这个数量进行排序,展示最有可能成为朋友的人。 为了进一步优化性能,还可以考虑以下策略: - 使用合适的数据模型,比如嵌入式文档或...

Global site tag (gtag.js) - Google Analytics