使用.Net+非关系型数据库MongoDB 实现LBS厂家按距离排序_按离自身近些日子排序

使用.Net+非关系型数据库MongoDB 实现LBS厂家按距离排序_按离自身近些日子排序

2. 启动MongoDB

新开三个CMD,输入 cd C:\MongoDB\Server\3.4\bin 回车,打开MongoDB目录

输入 mongo 回车,启动MongoDB

此时开荒浏览器,输入 ,浏览器若是出现:

It looks like you are trying to access MongoDB over HTTP on the native
driver port.

评释MongoDB运营成功

 

澳门新萄京 1

一.先是张开dos窗口,然后选拔路线到你的装置路线下的bin目录(笔者的路径是的D:mongo\mongodb\bin)

.Net MongoDB LBS地理地点固定 开辟进程,实现集团按距离排序

2.下载MongoDB For .net
驱动开采包,官方的c#driver位于driver菜单下,地址为:。这里还叩问到有samus驱动下载地址:

sc.exe create MongoDB binPath=
“\”F:\MongoDB\Server\3.2\bin\mongod.exe\” –service –config=
\”F:\MongoDB\Server\3.2\mongod.cfg\”” DisplayName= “MongoDB”
start= “auto”

前言:

在运用美团点外卖,看录制,找好吃的时候,日常会注意到软件有二个按距离排序,找离本身近年的厂家,心中有1对嫌疑,.Net+Sql
Server是怎么着实现那①需求的?开采选择关系型数据库Sql
Server实现那1需要是稍稍题指标,须要1多级经纬度数学公式的计量,功能就不高了。近期打探学习了下非关系型数据库MongoDB,开掘MongoDB的地理地方索引,能够圆满的缓和那些主题素材

澳门新萄京 2

 

澳门新萄京 3

 

一. 第贰,当然是下载 MongoDB

8.有个别操作

  
db.集结名称.Count(where); —呈现满足条件的条数—db.student.count({“sno”:{$type:一}});

   db.集结名称.distinct(“key”);
—得到全数key的value(去掉重复的)—db.student.distinct(“sno”);

  

壹. 本机安插安装MongoDB情状

第贰去官方网站下载Windows安装包:

相似景观下抉择暗中认可的6多少人就能够(除非你的主机是三十四位),下载后,安装到C盘根目录
C:\MongoDB\,实现后,进入该目录,新建data和logs八个公文夹,并在logs目录下再新建个mongodb.log。

那时候的目录结构为:

澳门新萄京 4

接下来张开命令提醒符(CMD),Windows捌.一的用户须要用助理馆员身份打开。施行以下命令:

mongod.exe –dbpath C:\MongoDB\Data
–logpath=C:\MongoDB\Logs\mongodb.log –logappend

 

二,安装

 

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

壹 新建项目,引用1个供给的dll

澳门新萄京 5

贰 筹算各样配置,毫无疑问就是敲代码

澳门新萄京 6

叁 新建多少个经纪人实体类

澳门新萄京 7

四 编写插入代码,先插入拾0条测试数据

澳门新萄京 8

自由插入100条厂家数据供测试使用

接下来,cmd查询下mongodb,是还是不是拾0条数据已经插入完毕?

澳门新萄京 9

5起家MongoDB地理地点索引

澳门新萄京 10

 

翻开地理地方是或不是创建实现

澳门新萄京 11

 

陆 先用MongoDB的询问语句,查询下是不是能够成功拿到数码

澳门新萄京 12

平常重回,上边使用C#啦

5 测试数据插入达成,接下去就是完毕效益,按距离排序读取近期1叁个商场

澳门新萄京 13

F五走三个主次,看看效果~

澳门新萄京 14

OK,获得数码,且这一个是按距离[40,40],按从近到远的1一,得到的10条商家数量,json都有了,你在C#抑或在前者分析,都以无压力了!~~~

到此圆满甘休!

>db.foo.find() (查看foo表数据)

 

如无意外,会看到:CreateService 成功。展开cmd,输入 services.msc,查找
MongoDB 服务,假若能运转成功,则证实路线准确。若是无法开发银行,则象征
路线错误,须要删除该服务(命令为:sc delete MongoDB),然后再一次增多。

澳门新萄京 15

风行版本下载在: 。请小心下载适合自身系统的安装包,作者选用的是:Windows
6四-bit 二〇一〇 Lacrosse二+。

  新建数据库(db) :use student

在你安装MongoDB的bin 目录下张开cmd, 输入:mongod 回车运维服务。相会到:

首先,目录logs和mongod.cfg,如

 

 

logpath= C:\data\log\mongod.log

九.管理

澳门新萄京,         查看collection数据的大小

 

          db.会集名称.dataSize()

 

          #查看colleciont状态

 

          db.集结名称.stats()

 

          #询问全体索引的轻重

 

          db.会集名称.totalIndexSize()

 

 

.与SQL对照

 

 

MongoDB

MySQL

查询全部

movies.find(new Document())

SELECT * FROM movies

条件查询

movies.Find(new Document { { "title", "Hello Esr" } });

SELECT * FROM movies WHERE title= ‘foobar’

查询数量

movies.Find(new Document { { "title", "测试2" } }).Documents.Count();

SELECT COUNT(*) FROM movies WHERE `title` = ‘foobar’

数量范围查询

1, movies.Find(new Document().Add("$where", new Code("this.num > 50")));

2, movies.Find(new Document().Add("num",  new Document().Add("$gt",50)));
($gt : > ; $gte : >= ; $lt : < ; $lte : <= ; $ne : !=)

3,movies.Find("this.num > 50");

4,movies.Find(new Document().Add("$where",new Code("function(x){ return this.num > 50};")));

select * from movies where num > 50

分页查询

movies.Find(new Document()).Skip(10).Limit(20);

SELECT * FROM movies  limit 10,20

查询排序语句

movies.Find(new Document()).Sort(new Document() { { "num", -1 } });

SELECT * FROM movies ORDER BY num DESC

查询指定字段

movies.Find(new Document().Add("num", new Document().Add("$gt", 50)), 10, 0, new Document() { { "title", 1 } });

select title from movies where num > 50

插入语句

movies.Insert(new Document() { { "title", "测试" }, { "resuleData", DateTime.Now } });

INSERT INOT movies (`title`, `reauleDate`) values (‘foobar’,25)

删除语句

movies.Remove(new Document() { { "title", "Hello Esr" } });

DELETE * FROM movies

更新语句

movies.Update(new Document() { { "title", "测试2" } }
             , new Document() { { "title", "测试11111" } });

UPDATE movies SET `title` = ‘测试1111’ WHERE `title` = ‘测试1111’

Linq查询

(from item in db.GetCollection("movies").Linq()
                       where ((string)item["title"]).StartsWith("Esr")
                       select item);

select * from movies where title like ‘%Esr’

 

 

 

只是至于dos 下的操作 依然希望大家探听一下 

此处安装为暗中认可数据库文件夹路线 [以下成立的文书与第伍步骤相关]

  新建集结(Collection) db.createCollection(“集合名称”);

可以见见插入了2条记下分别人set,test

接下来在DOS命令里输入:

Hotfix KB2731284 or later update is not installed.  以及 C:\data\db
not found 的字样。

  能够新建文档:(document) document={“一”:”二”,”三”:”四”}

 

前提:创建log路径: C:\MongoDBLog\log\mongodb.log

 

 

叁.回车dos分界面出现 1270一 的字样表明服务运转成功了如图所示

 

由于在dos 下操作mongodb 很不便宜 所以作者引入大家使用mongodb
的可视化学工业具robomongo  这一个是robomongo的下载网站

[plain] view
plaincopy

        创设集结db.createCollection(“会集名称”,{capped:true,size:一千00})

测试数据库操作 在bin目录展开 mongo.exe

mongod.cfg里面为:

 

在操作前须要运转mongodb数据库服务

 

  查看当前数据库下的具有集结:db.printCollectionStats();

你供给从: 下载 Fix405791补丁,填写
邮箱,微软会发一个补丁下载路线的邮件给你,邮件下载地址是:。下载达成后点击解压成 Windows6.一-KB27312八四-v三-x6肆.msu
文件,点击该文件,会设置补丁,该进程须求重启。

logpath=F:\MongoDB\Server\3.2\logs\mongod.log
dbpath=F:\MongoDB\Server\3.2\db

一,下载

伍.更新操作

  db.集合名称.update(where,set,未找到插入新的为true,更新多条为true);

 
db.集结名称.update({“id”:”一”},{“$set”:{“name”:”yuan”,”sex”:”男”}},false,true);

  更新扩充字段:$push

    —db.student.update({“sno”:2},{$push:{“classes”:”san”}})

(1)mongod –dbpath 存放的渠道。如:mongod –dbpath d:\test\data
【注:路线不可能包涵空格,否则使用第三种】

 也能够创立3个bat文件,不用每趟都要打击这个命令。创建***.bat,在内部输入

 

操作数据库的dos 窗口就可以再而三进行操作 ,举个例子查看全体数据库结果如图

 

基本操作:突显全体数据库:show dbs  用数据库:use xxx

2.在E:\mongodb-2.四.0创造Data文件夹,然后在该目录下各自创造db,log五个公文夹,至此E:\mongodb-二.四.0文件目录下有两个公文夹(bin,data,log).

就能够了,双击它就一定于在DOS下输入指令。

>db.foo.insert({test:拾0}) (往foo表插入test,拾0字段值,foo表为私下认可表)

咱俩在运维MySQL的时候是通过net start mysql和net stop
mysql来展开和关闭的,那么是不是能使用net start MongoDB和net stop
MongoDB来运行和关闭呢?是能够的

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图