欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Springboot配置MongoDB连接

程序员文章站 2022-06-05 20:23:21
之前有个项目,用的是Springboot框架,对接的数据库是mongodb,当时花了一些时间去做这个配置MongoDB的连接,现在把这个过程记录下来,以免遗忘。 一、在pom中添加依赖。 二、配置数据源 在项目中,使用的配置文件是yaml格式的,所以配置信息如下: 如果使用的是properties格 ......

  之前有个项目,用的是springboot框架,对接的数据库是mongodb,当时花了一些时间去做这个配置mongodb的连接,现在把这个过程记录下来,以免遗忘。

一、在pom中添加依赖。

<!-- 增加mongodb支持 -->
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-data-mongodb</artifactid>
<version>1.5.9.release</version>
</dependency>

二、配置数据源

  在项目中,使用的配置文件是yaml格式的,所以配置信息如下:

spring:
  data:
  mongodb:
  uri: mongodb://地址

 

  如果使用的是properties格式的话,配置信息则是;

spring.data.mongodb.uri= mongodb://地址

三、在实体中添加注解

  在实体添加@document注解,collection= "对应的表名"。

  在属性上添加@filed注解,值为对应的字段名。

@getter
@setter
@document(collection = "user")
public class user {
/*
用户id:
*/
  @field("id")
private string id;
/*
用户名
*/
@field("username")
private string username;
/*
性别
*/
@field("sex")
private string sex;
}

 

四、在业务层使用mongodb的方法:

@service
public class userserviceimpl implements userservice {

    @resource
    private mongotemplate mongotemplate;


    @override
    public long getcount() {
        query query = new query();
        long count = mongotemplate.count(query,user.class);
        return count;
    }

}

       如果说我们是在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支持 -->
<dependency>
<groupid>com.spring4all</groupid>
<artifactid>mongodb-plus-spring-boot-starter</artifactid>
<version>1.0.0.release</version>
</dependency>

    同时在项目启动类springbootmainapplication上添加一个注解@enablemongoplus。

    我们就可以在配置文件中添加这些配置了。

spring:
data:
mongodb:
uri: mongodb://地址
option:
socket-keep-alive: true
max-connection-idle-time: 60000
# connect-timeout: 36000
# min-connection-per-host: 5
# threads-allowed-to-block-for-connection-multiplier: 5
# max-wait-time: 120000
# socket-timeout: 0
# max-connection-life-time: 0
# heartbeat-socket-timeout: 36000
# heartbeat-connect-timeout: 36000
# min-heartbeat-frequency: 5
# heartbeat-frequency: 10