严格来说 是非关系型数据库,表与表之间没关系
评论存在以下特点
1数据量大
2写入操作频繁
3价值较低,丢一两条也无所谓
MongoDB是一个跨平台的,面向文档的数据库,它支持的数据结构是类似json的bson格式,是json的扩展,大部分时候,基本上就是json。
特点:
1面向集合存储,易于存储对象类型的数据
2模式自由
3支持动态查询
4支持完全索引,包含内部对象
5支持复制和故障恢复
6使用高效的二进制数据存储,包括大型对象(图片视频等)类似于redis
7自动处理碎片,以支持云计算层次的扩展性
MongoDB体系结构
MongoDB的逻辑结构是一种层次结构。主要由:文档document,集合collection,数据库database这三部分组成
1文档,相当于关系数据库的表
2多个文档组成一个集合,相当于关系型数据库的库
3多个集合,逻辑上组织在一起,就是数据库。
4一个MongoDB实例支持多个数据库
数据类型
null:用于空值或者不存在的字段,{“x”:null}
布尔型:布尔型有两个值true和false ,{“x”:true}
数值:默认使用64位浮点型数值,{“x”:3.14},{“x”:3},都是浮点型,对于整数型,可以使用NumberInt(4字节符号整数)或NumberLong(8字节符号整数),{“x”:NumberInt(“3”)}
字符串:UTF-8 {“x”:“哈哈”}
日期: 不存储时区,毫秒数{“x”:new Date()}
数组:{“x”:[“a”,“b”,“c”]}
内嵌文档:文档可以套其他文档,{“x”:{“x”:3}}
对象id: 对象id是一个12字节的字符串,他是文档的唯一标识,{“x”:objectid()}
MongoDB的默认主键是_id,只写id会被当做普通的列
mac环境下安装MongoDB
使用curl下载
sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz
解压
sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz
重命名
sudo mv mongodb-osx-x86_64-4.0.9/ mongodb
将MongoDB的bin目录存入path路径中
export PATH=/usr/local/mongodb/bin:$PATH
运行MongoDB
我们创建一个数据库存储目录 /data/db:
sudo mkdir -p /data/db
启动!
sudo mongod
这时需要再开一个终端来连接,先进入安装MongoDB的bin目录下,
./mongo
就连接上了
默认端口号27017
常用命令
创建个吐槽数据库相当于mysql的数据库,直接就切过来了,不能直接查,需要查表(集合)
在数据库中新建一张spit表(集合)并查询
添加一条记录,
再次查询,发现自己生产了一个_id ,有意思,不过一般不用,因为根据id查的话太麻烦了,但自己写一定得是_id,要不还是会生产_id.
条件不一定是_id,其他字段都可以
切记要加$set,要不其他字段就没有了
结合自己的小项目,做一个吐槽功能,具体功能
发布个人吐槽post,
全部吐槽get
根据id查吐槽get
点赞吐槽put
删除吐槽delete
修改吐槽put
统计吐槽点赞数,回复数,
统计自己发的吐槽数
配置文件
吐槽表
实体类
dao层
基本的增删改查就不贴了,贴根据用户id查询吐槽并分页,查询评论并分页(既根据parentid查),增加一条吐槽,点赞一条吐槽
service
controller
根据拦截器验证token登录,并获取userid。