加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

10分钟学完Mongodb

发布时间:2020-12-13 12:40:51 所属栏目:百科 来源:网络整理
导读:《10分钟学完Mongodb》要点: 本文介绍了10分钟学完Mongodb,希望对您有用。如果有疑问,可以联系我们。 编程之家PHP培训学院每天发布《10分钟学完Mongodb》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 实际开发中,Mongodb的应用场景比较灵活

《10分钟学完Mongodb》要点:
本文介绍了10分钟学完Mongodb,希望对您有用。如果有疑问,可以联系我们。

编程之家PHP培训学院每天发布《10分钟学完Mongodb》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

实际开发中,Mongodb的应用场景比较灵活,可以做缓存,也可以做主数据库,这取决于系统要求的应用性能与架构设计.今天我们来学习下Mongodb的相关知识,包含服务的启动与连接、数据库以及相关表的操作等.下述的截图都是我亲身测试过的,基本包含了mongodb操作的所有知识.

10分钟学完Mongodb

第一部分:mongodb服务启动与链接

下载二进制文件放置在linux目录下

10分钟学完Mongodb

解压二进制文件,将文件夹重命名下,如,mongodb3.0.2,进入目录进入bin下,我们可以看到如下程序,说几个重点的:

10分钟学完Mongodb

返回上层目录,创建一个咱们本身的mongodb的文件夹,目录如下:

10分钟学完Mongodb

4个文件夹分别代表了:Bin 命令文件夹 ;data 数据库相关文件夹;Conf 配置文件夹 ; log 日志文件夹.

将mongo3.0.2中的bin目录下的mongod服务cp到maizuo-mongo的bin目录下待启动,此时我们进入conf文件夹下,vi mongod.conf文件,写入以下内容:

10分钟学完Mongodb

Port 服务启动端口;dbpath数据库所在文件夹; logpath 日志存放位置 ;fork只在linux下有用 意味后台进城启动.

配置完成后,进入maizuo-mongo目录,使用命令./bin/mongod -f conf/mongod.conf 启动mongodb服务,输出如下内容表明服务启动成功.

10分钟学完Mongodb

下面,我们必要将源文件下的mongo命令cp到我们的maizuo-mongo的bin目录下,然后使用客户端连接mongodb服务,在这之前我们可以通过./bin/mongo --help命令看一下连接的命令:

10分钟学完Mongodb

由于我们当前未配置用户名和暗码 所以暂时不用关心[options]里的内容,使用命令./bin/mongo 127.0.0.1:12345连接mongodb:

10分钟学完Mongodb

我们发现它默认让我们连接的是test数据库 显示如上内容并出现>箭头,表示成功.可以使用db.shutdownServer()关闭mongodb服务.

第二部分:数据库和表相关操作

1、数据库相关

db 显示当前数据库

show dbs 显示所有数据库

use maizuo 切换到maizuo数据库 maizuo不存在 会在合适的时机自动创建

show collections 显示所有表名(在mongo里称之为集合)

2、插入

db.maizuo_users.insert({name:’lvpeng’}) 只能插入一条

For(int i=1;i<6;i++) db.maizuo_users.insert({name:i}) 插入多条

3、查询

db.maizuo_users.count() 查询表中有多少条数据

db.maizuo_users.find() 查询全部数据

db.maizuo_users.find({name:’lvpeng’}) 根据条件查询数据 支持中文

10分钟学完Mongodb

查询出来的数据 自带了_id属性 不过我们可以覆盖这个属性

db.maizuo_users.find().skip(2).limit(2).sort({name:1}) 查询数据 过滤前2条 只返回两条 并且依照name属性正向排序

10分钟学完Mongodb

4、更新

1、将姓名为lvpeng 的用户更新为xiaoxiong

db.maizuo_users.update({name:’lvpeng’},{name:’xiaoxiong’})

10分钟学完Mongodb

2、更新姓名为xiaoxiong 的用户设置它的年龄为23岁 使用$set 关键词

10分钟学完Mongodb

3、更新不存在的数据时,默认是不会执行成功的,但如果我们有类似的需求:在更新一条不存在的数据时,如果不存在,则insert进去,首先我们删掉name为xiaoxiong 的记录,然后执行更新,设置update办法的第三个参数为true 表明如果不存在则插入

10分钟学完Mongodb

4、默认只更新第一条数据,如果我们想所有符合条件的数据,必要设置update第4个参数:

10分钟学完Mongodb

5、删除

删除操作必需传递参数.与更新不同的是,默认删除所有复合条件的数据,例如:

10分钟学完Mongodb

删除表可以使用db.maizuo_users.drop();

10分钟学完Mongodb

索引介绍

数据库大的时候 使用索引可以加快速度,通过getIndexes办法可以查询索引

10分钟学完Mongodb

使用ensureIndex办法 创建索引,其中1代表方向,需要注意的是集合里的数据过多时,创建索引会比较慢,原因你应该懂的.创建完成后,再次使用age作为条件查询,速度会加快.

10分钟学完Mongodb

第三部分:简单索引使用

1、id索引

_id默认的唯一索引

10分钟学完Mongodb

2、单键索引

最普通的索引,和id索引的区别是不会自动创建.

3、多键索引

单键索引的值为一个单一的值,多键索引具有多个值

4、复合索引

10分钟学完Mongodb

5、过期索引

(1)在一段时间后会过期的索引

(2)在索引过期后,对应的数据会被删除

(3)适合存储用户的登录数据或日志

(4)过期单位为秒,但有必定的误差.

需要注意的是:存储在过期索引字段的值必须是指定的时间类型ISODate或ISODate数组 否则不能被自动删除;如果为ISODate数组 则依照最小的时间删除,另外过期索引不能为复合索引.删除时间不精确,有一定误差,1分钟的定时任务进程.

10分钟学完Mongodb

第四部分:全文索引

创建办法:

db.maizuo_users.ensureIndex({key:’text’}) text为固定的写法 意思为key字段上为全文索引

db.maizuo_users.ensureIndex({key1:’text’,key2:’text’}) 多字段的全文索引

db.maizuo_users.ensureIndex({‘$**’:’text’}) 所有字段的全文索引

1、全文索引创建

10分钟学完Mongodb

2、全文索引查询

首先插入两条测试数据

10分钟学完Mongodb





10分钟学完Mongodb

3、近似度查询

初始化数据

10分钟学完Mongodb

按之前的查询

10分钟学完Mongodb

加行score评分条件返回

10分钟学完Mongodb

依照score排序

10分钟学完Mongodb

4、全文索引的问题

(1)每次查询只能指定一个$text查询

(2)$text不能排除某些查询条件

(3)不支持中文,模糊也好像不支持

第五部分 地理位置索引

将一些点的位置存储在mongodb中,创建索引后,可以依照位置来查询其他点.

1、分类

2d索引 用于存储和查找平面上的点

2dsphere索引 用于存储和查找球面上的点

区别是计算方式的不同

2、查找方式

查询距离某个点一定距离内的点,查找包括在某个区域内的点

3、2d索引

Db.maizuo_seats_ensureIndex({w:’2d’});创建索引

位置表示方式:经纬度

取值范围:[-180,180] [-90,90]

4、$near 查询附近的点

$maxDistance最大距离

10分钟学完Mongodb

5、$geoWithin查询 查询某个形状内的点

(1)$box:矩形

{$box:[[x1,y1],[x2,y2]]}

10分钟学完Mongodb

(2)$center:圆形

{$center:[[x1,r]}

10分钟学完Mongodb

(3)$polygon:多边形

{$polygon[[x1,y2],[x3,y3]]}

10分钟学完Mongodb

6、$geoNear查询

$near的升级版

Db.runCommand(

{geoNear:seats,

Near:[2,2],

minDistance:

maxDistance:

}

)

第六部分 性能评估和监控

1、mongostat工具

用于查询mongodb运行状态的程序 Mongostat -h 127.0.0.1:12345

10分钟学完Mongodb

2、Profile集合

修改level为2 profile会记录所有mongodb的操作

10分钟学完Mongodb

10分钟学完Mongodb


3、日志介绍

在mongod.conf配置文件里可以设置日志文件的详细级别

从1个v到5个v 日志在log目录下

4、Explain分析

10分钟学完Mongodb

针对一个查询的分析

第七部分 Mongodb平安

1、平安级别

(1)物理隔离

(2)网络隔离

(3)防火墙

(4)用户名暗码

2、权限开启

Auth true 和keyfile开启

10分钟学完Mongodb

3、创建用户

CreateUser({

User:’’,

Pwd:’’

customData:’’,

Roles:[{role:’roletype’,db:’’}]

})

roleType: read readWrite dbAdmin dbOwner userAdmin

以上便是关于Mongodb的相关知识.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读