.Net MongoDB LBS地理位置定位 开发过程,实现商家按距离排序

前言:

在使用美团点外卖,看电影,找好吃的时候,经常会注意到软件有一个按距离排序,找离我最近的商家,心中有一些疑问,.Net+Sql Server是如何做到这一需求的?发现使用关系型数据库Sql Server实现这一需求是有些问题的,需要一系列经纬度数学公式的计算,效率就不高了。近期了解学习了下非关系型数据库MongoDB,发现MongoDB的地理位置索引,可以完美的解决这个问题
 
 

1. 本机部署安装MongoDB环境

首先去官网下载Windows安装包:https://www.mongodb.org/downloads
一般情况下选择默认的64位即可(除非你的主机是32位),下载后,安装到C盘根目录 C:\MongoDB\,完成后,进入该目录,新建data和logs两个文件夹,并在logs目录下再新建个mongodb.log。
此时的目录结构为:
然后打开命令提示符(CMD),Windows8.1的用户需要用管理员身份打开。执行以下命令:
mongod.exe --dbpath C:\MongoDB\Data --logpath=C:\MongoDB\Logs\mongodb.log --logappend
 

2. 启动MongoDB

新开一个CMD,输入 cd C:\MongoDB\Server\3.4\bin 回车,打开MongoDB目录
输入 mongo 回车,启动MongoDB
此时打开浏览器,输入 http://127.0.0.1:27017/ ,浏览器如果出现:
It looks like you are trying to access MongoDB over HTTP on the native driver port.
证明MongoDB启动成功
 

3. 打开VS,使用.Net链接操作MongoDB

① 新建项目,引用2个需要的dll
② 准备各种配置,毫无疑问就是敲代码
③ 新建一个商户实体类
④ 编写插入代码,先插入100条测试数据
随机插入100条商户数据供测试使用
然后,cmd查询下mongodb,是不是100条数据已经插入完毕?
⑤建立MongoDB地理位置索引
 
查看地理位置是否创建完毕
 
⑥ 先用MongoDB的查询语句,查询下是否可以成功得到数据
正常返回,下边使用C#啦
⑤ 测试数据插入完毕,接下来就是实现功能,按距离排序读取最近10个商家
F5走一个程序,看看效果~
OK,得到数据,且这些是按距离[40,40],按从近到远的顺序,得到的10条商家数据,json都有了,你在C#还是在前端解析,都是无压力了!~~~
到此圆满结束!

使用.Net+非关系型数据库MongoDB 实现LBS商家按距离排序_按离我最近排序的更多相关文章

  1. 数据库基础 非关系型数据库 MongoDB 和 redis

    数据库基础 非关系型数据库 MongoDB 和 redis 1 NoSQL简介 访问量增加,频繁的读写 直接访问(硬盘)物理级别的数据,会很慢 ,关系型数据库的压力会很大 所以,需要内存级的读写操作, ...

  2. 非关系型数据库MongoDB入门

    本文分为以下四块简单介绍非关系型数据库MongoDB:1.MongoDB简介.2.MongoDB和关系数据库对比.3.MongoDB基本概念.4.mongo shell的使用以及对MongoDB的增删 ...

  3. 大数据时代的数据存储,非关系型数据库MongoDB

    在过去的很长一段时间中,关系型数据库(Relational Database Management System)一直是最主流的数据库解决方案,他运用真实世界中事物与关系来解释数据库中抽象的数据架构. ...

  4. 大数据时代的数据存储,非关系型数据库MongoDB(一)

    原文地址:http://www.cnblogs.com/mokafamily/p/4076954.html 爆炸式发展的NoSQL技术 在过去的很长一段时间中,关系型数据库(Relational Da ...

  5. 非关系型数据库MongoDB

    爆炸式发展的NoSQL技术 在过去的很长一段时间中,关系型数据库(Relational Database Management System)一直是最主流的数据库解决方案,他运用真实世界中事物与关系来 ...

  6. Python3爬虫(十) 数据存储之非关系型数据库MongoDB

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.非关系型数据库NoSQL全程是Not Only SQL,非关系型数据库.NoSQL是基于键值对的,不需要经过S ...

  7. 非关系型数据库----MongoDB

    一.什么是MongoDB? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提 ...

  8. 非关系型数据库mongodb的语法模式

    from pymongo import MongoClient #连接 conn = MongoClient() #进入数据库 db = conn.edianzu #连接mydb数据库,没有则自动创建 ...

  9. 非关系型数据库MongoDB初级使用教程

    安装:官网 安装难度不大,依序即可 1.新建存储文件    完成后,打开MongoDBx下载路径,新建名为data的文件夹,在此新建名为db的文件夹,db文件夹即用于存储数据 2.配置文件    在b ...

随机推荐

  1. PHP 引用是个坑,请慎用

    去年我参加了很多次会议,其中八次会议里我进行了相关发言,这其中我多次谈到了 PHP 的引用问题,因为很多人对它的理解有所偏差.在深入讨论这个问题之前,我们先回顾一下引用的基本概念,明确什么是" ...

  2. Git常用命令(二)------ 远程库操作

    本文总结自廖雪峰网站. Git支持多种协议,git://使用ssh协议,速度最快,也可使用https等协议. 对远程库操作: 推送: 1.先远程建立一个Repo库,f 2.远程和本地关联: git r ...

  3. RDD概念、特性、缓存策略与容错

    一.RDD概念与特性 1. RDD的概念 RDD(Resilient Distributed Dataset),是指弹性分布式数据集.数据集:Spark中的编程是基于RDD的,将原始数据加载到内存变成 ...

  4. hibernate框架学习笔记9:多对多关系案例

    员工与角色案例: 一个员工可以是多种角色(总监,经理),一种角色可以是多个员工(保洁) 这里发现无法使用外键表达关系,多对多总是创建第三张表来维护关系 这张表至少两列,都是外键,分别引用两张表的主键 ...

  5. 读论文系列:Object Detection CVPR2016 YOLO

    CVPR2016: You Only Look Once:Unified, Real-Time Object Detection 转载请注明作者:梦里茶 YOLO,You Only Look Once ...

  6. MySQL之集合函数与分组查询

    这是分组查询用到的语句,也包括了排序以及常用的集合函数

  7. Beta冲刺 第一天

    Beta冲刺 第一天 1. 昨天的困难 由于今天还是第一天,所以暂时没有昨天的困难. 2. 今天解决的进度 潘伟靖: 对代码进行了review 1.将某些硬编码改为软编码 2.合并了一些方法,简化代码 ...

  8. collections deque队列及其他队列

    from collections import deque dq = deque(range(10),maxlen=10) dq.rotate(3)#队列旋转操作接受一个参数N,让N>0时,队列 ...

  9. MMA8451重力加速度计通过写内部校准寄存器进行校准

    |版权声明:本文为博主原创文章,未经博主允许不得转载. AN4069应用笔记中提到MMA8451的三个轴重力校准有两种方法, 第一种方法是简易校准,将贴有MMA8451的设备整体,Z轴正面朝上放在校准 ...

  10. HTTP请求到爬虫代码的终南捷径

    前阵子在做爬虫的时候学会了各种抓包,看到http请求的时候硬拼代码实在有点累. 后来发现Postman工具是直接可以把Postman请求直接生成对应的代码,这样一下来就美滋滋了. 那么最后的问题就成了 ...