Springboot配置MongoDB连接

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

一、在pom中添加依赖。

org.springframework.boot spring-boot-starter-data-mongodb 1.5.9.RELEASE 二、配置数据源

在项目中,使用的配置文件是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;
}

}

五、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 outputTypeCount1 = mongoTemplate.aggregate(aggregation1, “User”, BasicDBObject.class);//取出的结果需要自行进行处理,比如可以用getMappedResults来转换
六、增强配置

如果我们在项目中需要管理MongoDB的最大连接时长、socket保持活跃、最大等待时长等,那么我们在pom文件中需要引入一个增强管理包。

com.spring4all mongodb-plus-spring-boot-starter 1.0.0.RELEASE     同时在项目启动类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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值