十次方微服务da3总结(mongodb)

吐槽模块用来了mongdb作为数据库 首先来介绍一下mongdb

mongdb是一款跨平台、面向文档的nosql数据库 我们知道nosql就是非关系型数据库

那么关系型数据库和非关系型数据库有什么区别呢
这里简单说一下
关系型数据库用特定二维表格存储数据且表与表之间存在联系
非关系型数据库更加灵活和可扩展,存储方式可以是JSON文档、哈希表或者其他方式。
参考链接:https://blog.csdn.net/xgf415/article/details/75370783

接着mongdb
它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最 像关 系数据库的产品。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,其实可以认为他就是json 因此可以 存 储比较复杂的数据类型。

特点

MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象 的查 询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建 立索 引。它是一个面向集合的,模式自由的文档型数据库。 具体特点总结如下:
(1)面向集合存储,易于存储对象类型的数据
(2)模式自由
(3)支持动态查询
(4)支持完全索引,包含内部对象
(5)支持复制和故障恢复
(6)使用高效的二进制数据存储,包括大型对象(如视频等)
(7)自动处理碎片,以支持云计算层次的扩展性
(8)支持 Python,PHP,Ruby,Java,C,C#,Javascript,Perl 及 C++语言的驱动程 序, 社区中也提供了对 Erlang 及.NET 等平台的驱动程序
(9) 文件存储格式为 BSON(一种 JSON 的扩展)

体系结构

mongdb由数据库、集合、文档3个结构组成 多个文档组成集合 多个集合组成数据库 并且支持多个数据库
如下图所示
十次方微服务da3总结(mongodb)_第1张图片
十次方微服务da3总结(mongodb)_第2张图片

数据类型

**null:**用于表示空值或者不存在的字段,{“x”:null}
布尔型:布尔类型有两个值true和false,{“x”:true}
数值:shell默认使用64为浮点型数值。{“x”:3.14}或{“x”:3}。对于整型值,可以使用 NumberInt(4字节符号整数)或NumberLong(8字节符号整数), {“x”:NumberInt(“3”)}{“x”:NumberLong(“3”)}
字符串:UTF-8字符串都可以表示为字符串类型的数据,{“x”:“呵呵”}
日期:日期被存储为自新纪元依赖经过的毫秒数,不存储时区,{“x”:new Date()}
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
正则表达式:查询时,使用正则表达式作为限定条件,语法与JavaScript的正则表达式相 同,{“x”?[abc]/}
数组:数据列表或数据集可以表示为数组,{“x”: [“a“,“b”,”c”]}
内嵌文档:文档可以嵌套其他文档,被嵌套的文档作为值来处理,{“x”:{“y”:3 }} 对象Id:对象id是一个12字节的字符串,是文档的唯一标识,{“x”: objectId() }
二进制数据:二进制数据是一个任意字节的字符串。它不能直接在shell中使用。如果要 将非utf-字符保存到数据库中,二进制数据是唯一的方式。
代码:查询和文档中可以包括任何JavaScript代码,{“x”:function(){/…/}}

简单介绍完了 接着安装mongfb

下载安装完后可以再bin文件夹下看到这两2个命令 一个是客户端一个是服务端

在这里插入图片描述
我们现在命令行开启服务端同时指定数据库文件
十次方微服务da3总结(mongodb)_第3张图片
十次方微服务da3总结(mongodb)_第4张图片
十次方微服务da3总结(mongodb)_第5张图片
这里不介绍mondb基本命令和java操作api
参考链接 https://www.cnblogs.com/wpjzh/p/5999363.html
https://www.cnblogs.com/sa-dan/p/6836055.html

下面介绍springdatamongdb并开发吐槽服务
十次方微服务da3总结(mongodb)_第6张图片
十次方微服务da3总结(mongodb)_第7张图片
在配置文件中指定地址和数据库名字
十次方微服务da3总结(mongodb)_第8张图片
注意这里实体类不需要声明什么@Entity的 只需要在主键上注明@id 注意主键属性名是以_开头的
十次方微服务da3总结(mongodb)_第9张图片
十次方微服务da3总结(mongodb)_第10张图片
我们发现和springdatajpa一样一样的 只需要继承指定接口 就有了基本的增删改查 也可以写指定的方法名 进行简单的条件判断

吐槽点赞这里用到了MongdbTemlate 这里可以直接引入
在这里插入图片描述
十次方微服务da3总结(mongodb)_第11张图片

再讲一点
十次方微服务da3总结(mongodb)_第12张图片
这里使用redis控制不能重复点赞 如果已经点赞了 把用户信息存入redis中 再次点赞 如果redis中有这个用户信息 就不允许点赞

你可能感兴趣的:(十次方笔记)