SpingBoot配置MongoDb
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SpingBoot配置MongoDb,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3135字,纯文字阅读大概需要5分钟。
内容图文
之前有个项目,用的是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);
- 查询
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
原文:https://blog.51cto.com/14451034/2420603
内容总结
以上是互联网集市为您收集整理的SpingBoot配置MongoDb全部内容,希望文章能够帮你解决SpingBoot配置MongoDb所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。