MongoDB数据库系列MongoDB基础
Posted 一宿君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB数据库系列MongoDB基础相关的知识,希望对你有一定的参考价值。
第一章、MongoDB基础
学习目标
- 数据库种类
- MongoDB简介
- MongoDB安装
- MongoDB基本操作
- MongoDB文档增删修查(CURD)
- MongoDB实战教学管理系统数据库设计
数据库种类
- 关系型:Oracle、mysql、SQLite 、SQL Server等
- 非关系型(Not Only SQL):MongoDB(文档)、Redis/Memcache(内存)
关系型和非关系型数据库软件区别
- 相同点:都是数据库软件,用来存放项目数据
- 不同点:
关系型:1.遵循SQL标准,换句话说语法大同小异、2.有库和表约束等
非关系型:1.没有统一标准、2.一般键值对形式存储、3.读取速度更快
关系型和非关系型数据库如何选择:
1、MongoDB简介
- MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
- MongoDB是一个介于关系型和非关系型数据库之间的产品,是非关系型数据库当中功能最为丰富,也是最像关系型数据库的。
- 支持的数据结构非常松散,是类似json的bson格式
JSON(javascript Object Notation JS对象简谱)是一种轻量级的数据交换格式bson(二进制JSON)
下载版本地址
- windows版本下载:https://www.mongodb.org/dl/win32
- linux版本下载:https://www.mongodb.org/dl/linux
- 社区免费版(自选版本):https://www.mongodb.com/try/download/community
- 版本说明:
2.x
3.x (3.2 、3.4、3.6 )
4.x (4.2 更佳的数据管理能力、更强的分布式架构、多文档事物等)
2、Windows下安装MongoDB
2.1、步骤
-
步骤1:下载地址:https://www.mongodb.com/try/download/community
-
步骤2:解压
解压后先在解压目录中创建如下文件夹,用于创建MongoDB服务
-
步骤3:创建MongoDB服务
注意:
1:必须要通过管理员身份运行DOS窗口,切换到bin目录下,否则无权限会创建失败
2:得提前创建数据和日志存放目录 (上述我们已创建)
-
执行如下命令:
#此处的磁盘路径就是我们上述的data文件夹路径 #此处的日志路径就是我们上述的log文件夹路径 mongod.exe --install --dbpath 磁盘路径 --logpath 日志路径
执行上述命令直接回车即可:
去服务中查看MongoDB服务是否创建成功?
-
步骤4:启动服务
net start mongodb
-
步骤5:登录(验证是否安装成功)
#连接MongoDB数据库 mongo
-
关闭服务命令:
net stop mongodb
2.2、Linux系统下安装MongoDB
- 步骤1:下载curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
- 步骤2:解压
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz- 步骤3:将解压包拷贝到指定目录
mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb- 步骤4:创建数据存放目录与日志存放目录
mkdir -p /usr/local/mongodb/data /usr/local/mongodb/logs- 步骤5:启动MongoDB服务
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongodb.log --logappend --port=27017 --fork- 后期登录即可
/usr/local/mongodb/bin/mongo
3、启动成功后,为数据库设置登录密码(数据安全)
3.1、查看所有数据库
#查看所有数据库
show databases
show dbs #缩写指令
3.2、选择admin数据库,并为其设置用户和密码
3.2.1、给admin数据库设置用户和密码及权限角色
db.createUser({user: 'root', pwd: '123456', roles: ['root']})
3.2.2、验证是否设置成功
#这里用db.auth('root', '123456')
#如果返回 '1'表示验证成功, 如果是 '0' 表示验证失败.
db.auth('用户名','用户密码')
4、基本指令操作
- 查看数据库
show databases #完整形式 show dbs #缩写形式
- 选择数据库
use admin
- 查看集合
show collections
- 创建集合
db.createCollection('集合名')
- 删除集合
db.集合名.drop()
- 删除数据库
#第一步 use 数据库名 #第二步 db.dropDatabase()
5、MongoDB文档增删改查(CURD)
5.1、增加数据(Create)
-
向集合中插入数据
db.集合名.insert({key1:'value1',key2:'value2',……})
-
查看集合中的数据
db.集合名.find()
留心1:数据库和集合不存在的时候都会隐式创建
留心2:对象的键统一不加引号方便看,但是查看集合数据时系统会自动加
留心3:mongodb会给每条数据增加一个全球唯一的_id键,当然也可以自己赋值把系统自定义的覆盖掉(非常不建议这样做)
-
一次性向集合中插入多条记录
#注意此处的中括号 db.集合名.insert([ {uname:'lisi',pwd:'654321',age:22}, {uname:'wangwu',pwd:'123321',age:23}, {uname:'zhaoliu',pwd:'112233',age:24} ])
-
如何向集合中快速插入十条数据
for(var i=0;i<=10;i++){ db.集合名.insert(uname:'a'+i,pwd:'pwd'+i,age:i) }
5.2、查找数据(Read)
- 按条件查询所有数据
db.集合名.find({},{条件}) #前面的{}也可以不写
- 语法:
db.集合名.find({ 键:{运算符:值} })
条件:查询所有数据 {}或者不写
- 查询age=6的数据 ----{age:6}
- 既要age=6又要性别=男 ----{age:6,sex:‘男’}
- 查询的列:参数不写 ----是查询全部列
- 字段 {age:1} 只显示age列(
- 字段 {age:0} 除了age列其他字段都显示
- 留心:不管你怎么写系统自定义的_id都会在
- 运算符:
$gt 大于 $gte 大于等于 $lt 小于 $lte 小于等于 $ne 不等于 $in 在其中 $nin 不在其中
- 查询年龄大于5的记录
- 查询年龄为5,岁、8岁、10岁的记录
5.3、修改数据(Update)
- 将{uname:‘zs1’}修改为{uname:‘zs11’}
db.集合名.update({uname:'zs1'},{{uname:'zs11'})
- 使用升级语法修改器(将zs4的姓名改为zs44)
db.c3.update({uname:"zs4"}, {$set: {uname: "zs44"}})
- 修改器语法:
$set #修改列值 $unset #删除列值 $inc #递增 $rename #修改列名(重命名)
- 给{uname:“zs10”}的年龄加2岁或者减2岁(利用$inc)
- 综合利用修改器
5.4、删除数据(Delete)
- 语法:
db.集合名.remove({},true/false) #后面的条件不写默认是false
注意:是否删除一条记录
- true-是
- false-否(默认)
- MongoDB增删改查CURD标识总结:
- 增Create
db.集合名.insert()
- 删Delete
db.集合名.remove()
- 改Update
db.集合名.update()
- 查Read
db.集合名.find()
以上是关于MongoDB数据库系列MongoDB基础的主要内容,如果未能解决你的问题,请参考以下文章