1、MongoDB入门

Spring-date对MongoDB做了支持,使用spring-date-mongodb可以简化MongoDB的操作,通过内部提供的MongoTemplate对象方便的进行数据的CRUD

 

入门案例:

案例:通过SpringDate-mongo完成数据CRUD

步骤分析:

1、创建工程,导入依赖

2、添加mongodb的配置信息

3、编写实体类,并通过注解配置映射

4、通过注入MongoTeplate进行数据操作

 

 

2、今日佳人模块

 

需求分析:

今日佳人,会推荐缘分支最大的用户,进行展示出来,缘分支的激素那是由用户的行为进行打分,如:点赞、点击、评论、学历、婚姻状态等信息组合而成的。

SpringBoot整合MongoDB_请求参数

 

注意:先不考虑推荐逻辑,只从已有的推荐结果中查询缘分值最高的

 

 

数据库表:

推荐用户表

"_id": 
"s core 
94.72, 
"date": "2e2e/1e/11"

 

 

实现步骤:

1、搭建服务提供者

1、配置环境(启动类,配置文件)

2、编写实体类

3、编写API层接口和实现类

2、根据接口编写vo对象

3、根据接口编写Controller

4、service调用API查询数据,构造vo对象并返回

 

 

 

3、推荐好友列表模块

 

需求分析:

il*fiit 
/tanhua/recommendation 
GET 
Authorization 
RecommendUserDto 
ResponseEntiW<PageResult>

 

注意:请求方式为Get请求,参数就不会放在请求体中collection方法中不在需要RequestBody进行解析,Get方式请求传递的是请求参数,而不是请求体Body,所以不需要@RequestBody JSON转化。

但是,里面每一项的属性名要和请求过来的每一项参数名保持一致!!

 

 

知识扩展:DTO是做参数传递的,VO是做数据响应传递的

 

 

实现步骤:

1、获取请求参数

2、Service调用API分页查询 推荐列表

1、调用API查询分页列表

2、根据推荐用户id查询用户详情

3、构造Vo对象

3、API层完成分页查询

 

 

代码优化:

在Service中存在一些问题:

在循环查询RecommendUser数据列表是需要多次调用远程userInfo进行查询造成性能问题。

 

优化:

1、在UserInfoAPI中根据条件一次性查询所有用户列表

1、使用Map集合作为返回值构造方法

2、Service层进行数据筛选