数据库分类
关系型数据
就是在数据库存储中有一张一张的表 表与表之间相关有所关联 形成了一个数据组织(二维表格模型 )
Mysql oracle sql server DB2
非关系型数据库
一个新的理念 以key---val对的形式在进行存储的
Mongodb redis
Nosql
Not only sql 不仅仅是sql 可以使用json的方式来进行数据存储没有表结构
mongodb安装
1.mongodb安装
出现如下界面表示安装成功
安装完成之后 去你电脑上的硬盘中对应的安装路径中
应该是这个样子的
点击进入到bin文件夹下
2创建mongodb服务
在mongodb的安装路径中于bin文件夹同级创建一个data的文件夹
进入到data这个文件夹中在创建一个db的文件夹
安装mongodb的服务
注意:使用管理员方式打开cmd
把cmd的路径定位到 你的安装mongodb这 个文件夹中
然后在cmd中输入mongod.exe --install --dbpath 数据的目录(就是你之前创建的哪个db的路径) --logpath 日志的目录(就是你创建的哪个data的文件夹然后在后面加上一个\log.txt 这个文件回自己创建你加上就好)
注意如果上图中你回车了 出现了很多内容 那就是配置失败
配置失败处理的方式 首先确定你的data和db文件夹的位置是否正确
检查你在创建服务的时候输入的上图内容是否正确
启动服务器
启动服务注意必须在mongodb的bin文件夹下启动 输入 net start mongodb
链接
数据库操作
查看所有的数据库 show dbs
新增数据库/切换 如果有就切换如果没有就是新增
use 数据库的名字
创建一个集合
db.createCollection(“集合的名字”)
删除库
- 必须先用use 库名 切换到你要删除的库中
- db.dropDatabase() 注意单词大小写
集合操作
即创建集合又新增内容
查看当前库中的所有集合
删除集合
集合的更多操作
增
1.向集合中插入一条数据
db.集合名.insert({key:val})
2.插入多条数据
Db.集合名.insert( [{key:val},{key:val},{key:val},{key:val}..........] )
你在插入的时候默认会给你一个id 那么这个id我能否自己指定
你刚才手工修改id了 那么如果我在存储数据的时候id相同会发生什么?
默认情况下id如果相同是插入不进去的
如果我就是想让id相同并且插入数据的话怎么办?
Db.你要插入的集合名.save({key:val})
Save 和 insert 两种方式的区别
Save 插入数据的时候如果这个id存在那么就是修改
Insert 插入数据的时候如果这个id存在那么就报错
查
1.查看集合的所有数据
Db.你要查看的集合名.find()
2.条件查询
Db.你要查看的集合名.find({查询条件})
3.条件运算符查询
大于 $gt
小于 $lt
大于等于 $gte
小于等于 $lte
不等于 $ne
Db.你要查询的集合.find( {key : {$gt:???} } )
我想查询出年龄大于20岁的所有数据
4.读取指定数量的记录条数
Limit()
Db.查询的集合.find().limit(数字)
5.skip跳过指定数量的数据
例 数据库分页
第一次读取前三条 第二次读取4-6条 第三次读取7-9条
修改
db.集合名.update({需要修改的内容},{$set:{修改后的内容},{multi:false}})
multi:默认是false 只需要找到的第一条数据,true 修改全部数据
删除
db.集合名.remove(条件)