Springboot配置MongoDB连接
之前有个项目,用的是springboot框架,对接的数据库是mongodb,当时花了一些时间去做这个配置mongodb的连接,现在把这个过程记录下来,以免遗忘。
一、在pom中添加依赖。
<!-- 增加mongodb支持 --> |
二、配置数据源
在项目中,使用的配置文件是yaml格式的,所以配置信息如下:
spring: |
如果使用的是properties格式的话,配置信息则是;
spring.data.mongodb.uri= mongodb://地址 |
三、在实体中添加注解
在实体添加@document注解,collection= "对应的表名"。
在属性上添加@filed注解,值为对应的字段名。
@getter |
四、在业务层使用mongodb的方法:
@service } |
如果说我们是在controller层中要注入mongotemplate,我们使用@autowrite注解来使用。
五、mongotemplate常使用的方法
1.插入
mongotemplate.insert(object); |
2.删除
query query=new query(criteria.where("_id").is(id)); mongotemplate.remove(query,automaticalarm.class); |
3. 修改
query query=new query(criteria.where("_id").is(id)); update update = update.update("要更新的字段", "更新的值"); mongotemplate.updatefirst(query, update, object.class); |
4.查询
1.查找所有 mongotemplate.findall(object.class); 2.条件查询(具体某个字段的值) query query=new query(criteria.where("字段1").is("值1")); mongotemplate.find(query, object.class); 3.条件查询(大于小于) criteria criteria = criteria.where("字段").gte(某个值).lte(某个值); query query = new query(criteria); mongotemplate.find(query, object.class); 4.模糊查询 pattern pattern = pattern.compile("^.*" + searchkey + ".*$");//这里时使用的是正则匹配,searchkey是关键字,接口传参,也可以自己定义。 criteria criteria = criteria.where("_id").regex(pattern); mongotemplate.find(query, object.class); 5.分页查询 query query = new query(); query.skip("跳过的数据条数").limit("一页的数据条数"); mongotemplate.find(query, object.class); 6.聚合查询 aggregation aggregation1 = aggregation.newaggregation(aggregation.group("sex").count().as("peoplecount"));//这里的聚合条件由自己定义 aggregationresults<basicdbobject> outputtypecount1 = mongotemplate.aggregate(aggregation1, "user", basicdbobject.class);//取出的结果需要自行进行处理,比如可以用getmappedresults来转换 |
六、增强配置
如果我们在项目中需要管理mongodb的最大连接时长、socket保持活跃、最大等待时长等,那么我们在pom文件中需要引入一个增强管理包。
<!-- 增加mongoplus支持 --> |
同时在项目启动类springbootmainapplication上添加一个注解@enablemongoplus。
我们就可以在配置文件中添加这些配置了。
spring: |