最近做一个关于附近的人查询,参考了很多资料:现在市面上主流的做法
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的算法实现问题,查出来的附近的人可能距离排序不是很准,单总体趋势是正确的
相关推荐
它使得开发者可以快速地在应用程序中实现对MongoDB的操作,无需关注底层的MongoDB驱动程序细节。 **2. 设置MongoDB连接** 在Spring Boot项目中,我们可以通过`application.properties`或`application.yml`配置文件...
对于想要学习或提升Node.js后端开发技能的人来说,这是一个非常实用的学习资源。 首先,`app.js`是整个应用的主入口文件,它初始化了Express应用,并设置了路由和中间件。在Express中,中间件是一种函数,它们按照...
2. **网络层**:MongoDB的网络层负责处理客户端的连接和通信,实现高效的网络I/O,这部分源码可以揭示其如何处理请求和响应。 3. **查询解析器**:解析来自客户端的查询语句,转换为内部可执行的计划。源码中可以...
Spring Security ACL MongoDB Spring Security 访问控制列表 (ACL) 是一种方便的方式来授予对域对象(例如书籍或联系人列表)的基于用户的权限访问。 默认情况下,Spring Security通过4个SQL表管理ACL,这些SQL表在...
- 联系人管理:处理用户添加、删除和查看联系人的逻辑。 - 状态同步:处理在线状态和离线状态,确保消息传递的准确性。 5. **性能优化与安全性** - 索引:为提高查询性能,根据查询需求创建合适的索引。 - 权限...
在现代网络安全环境中,确保数据在传输过程中的安全性至关重要,SSL(Secure Socket Layer)或其更新版本TLS(Transport Layer Security)正是实现这一目标的关键技术。SSL/TLS可以提供端到端的数据加密,防止中间人...
**MEAN Stack简介** MEAN Stack(MongoDB、Express、Angular、Node.js)是一个全JavaScript技术栈,用于构建高效、可扩展的Web...对于希望深入学习MEAN Stack或者想要构建类似应用的人来说,这是一个很好的实践案例。
在配置systemd服务文件后,你可以使用“systemctl start mongod”命令启动MongoDB,"systemctl status mongod"查看状态,"systemctl enable mongod"设置开机启动。如果遇到权限问题,可能需要调整数据目录的所有权...
网格管理员登录后可以查询所有小区建档信息,和所有小区房屋信息,人员信息和车辆信息等,可以管理网络信息,新建任务分配给指定小区负责人,处理批阅评价小区负责人处理任务的结果等。网格员登录系统后可以管理自己...
不少人都经历过自己的网站、应用由小到大,用户越来越多,访问量越来越大,数据量也越来越大。这当然是好事。但是,以前一个服务器就可以抗下的数据库现在不行了。开始还可以做做优化,再加个缓存。但是再后来,无论...
对于想要深入了解MongoDB和Web应用开发的人来说,RockMongo源码是一个宝贵的学习资源。它不仅提供了实际的项目经验,还能帮助你理解和掌握数据库管理工具的设计与实现。如果你是开发者,可以尝试对源码进行扩展,为...
通过查看这些文件,我们可以更详细地了解客户端的设计和实现细节,以及具体的并发策略和性能指标。 总结来说,这个Java客户端为MongoDB并发访问性能测试提供了一个实用工具,涵盖了查询、修改和插入操作。它利用...
1. **社交平台**:存储用户信息和动态,利用地理位置索引来实现诸如“附近的人”功能。 2. **游戏领域**:存储玩家数据、游戏进度等信息,利用内嵌文档形式高效地组织和访问数据。 3. **物流行业**:跟踪订单状态...
这个系统能够实现用户注册、登录、发布、查看、编辑和删除博客文章的功能,是典型的前后端分离的Web开发实例。下面将详细阐述相关知识点。 一、Express框架 Express是基于Node.js平台的快速、开放、极简的Web开发...
这样,`findByName`方法就自动实现了按姓名查找用户的功能,无需编写具体实现。 本项目"MongoDB测试javaweb项目demo"应该包含了以上所述的MongoDB与Java Web集成的关键步骤,包括连接配置、数据操作以及可能的...
总结来说,MongoDB官方手册是全面了解和学习MongoDB的必备资料,涵盖了从基础概念到高级特性的所有内容,对于任何希望掌握MongoDB的人都是一份宝贵的资源。通过深入学习,开发者能够熟练地运用MongoDB来构建高效、可...
## 开发软件: WebStorm 开发环境:Vue + Nodejs + express框架 + MongoDB数据库 这个项目一共4个身份:超级管理员,领导,网格员管理员和网格员用户!超级管理员登录后可以管理所有用户信息,维护字典信息,数据...
后端服务由Node.js和MongoDB提供,主要实现了文章查看、发布、评论等功能。 2. **CSDN博客文章**: 另一篇文章介绍了如何使用React、Express和MongoDB搭建一个多人博客平台。这篇文章可能为您提供一些关于如何搭建和...
在通讯录项目中,你可能还需要实现搜索和排序功能,这可以通过MongoDB的查询语法实现。例如,按姓名查找或按年龄排序联系人。 ```javascript // 在Python中按名字查找 cursor = collection.find({"name": "Alice"})...