MongoDB实现附近的人

最近腾讯把“漂流瓶”这个张小龙引以为傲的产品下架,正所谓:匹夫无罪怀璧其罪,漂流瓶本无罪,但是被一些人利用传播色情内容或广告,因此在11月30号深夜,腾讯关闭漂流瓶。那么作为微信另外的一个大家熟悉的功能“附近的人”会不会被下架呢?今天我们暂不讨论,咱们今天讨论的是附近的人怎么实现,当然实现的方式有很多种:比如Redis,MySQL,Postgresql,MongoDB等。那今天我就使用MongoDB的LBS功能实现附近的人!

一、MongoDB简介

MongoDB是一种NoSql数据库,是一个使用C++开发的高性能、开源,无模式的文档型数据库。MongoDB是面向文档的,文档以JSON格式,二进制JSON (BSON) 存储在MongoDB中。官方网站地址是:https://www.mongodb.com/ 。主要特点有:高性能、高可用、水平扩展能力强。支持完全索引,查询,支持服务器之间的数据复制和故障恢复。支持C++,Ruby,Java,Python,PHP,C,C#,Javascript,Perl等。

mongodb二、MongoDB与关系型数据库比较

对比

三、准备工作

下载并安装mongodb数据库,下载并安装Robomongo,如有不知可以咨询小编!

四、数据准备

往数据库中批量插入数据,use mage切换到mage数据库,执行,user是文档名,是批量插入命令,里面传入json数组,代表一条用户数据,其中gender:0代表女1,代表男,loc是一个经纬度的数组,当然也可以是,但官方推荐数组。

五、设置2d索引

六、查询附近200米的人

查询附近的人,首先的指导当前用户所在的经纬度,如果不仅想要得到数据还要得到距离,那么可以使用

geoNear指令,如果距离自己去计算可以使用

near或者

geoWithin然后在手动计算距离。此处采用

geoNear指令查询附近2000m的人。

到这儿为止,采用mongodb的2d平面索引就能完成附近的好友搜索了,如果想要了解更多,欢迎来撩小编!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181207A0N0AS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券