本代码适用于SpringCloud和SpringBoot。
引入jar包
<!--mongodb-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
新增配置信息
spring:
data:
mongodb:
host: 127.0.0.1
port: 27017
username: root
password: 123456
database: admin
注入bean
@Autowired
private MongoTemplate mongoTemplate;
使用即可
/**
* @description:MongoDB新增数据
*
* 区别
* 插入重复数据
* insert: 若新增数据的主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常提示主键重复,不保存当前数据。
* save: 若新增数据的主键已经存在,则会对当前已经存在的数据进行修改操作。
*
* 批操作
* insert: 可以一次性插入一整个列表,而不用进行遍历操作,效率相对较高
* save: 需要遍历列表,进行一个个的插入
*
* ---------------------
* 作者:宋发元
* 来源:CSDN
* 原文:https://blog.csdn.net/u011019141/article/details/89192757
* 版权声明:本文为博主原创文章,转载请附上博文链接!
*
* @param
* @return com.github.collection.common.util.Response
* @author songfayuan
* @date 2019/4/10 19:25
*/
@PostMapping("/mongoSave")
public Response mongoSave(){
Map<String, Object> map = new HashMap<>();
//map.put("_id", "10086");
map.put("name", "songfayuan");
map.put("age", "26");
map.put("wechat", "SFY54420");
this.mongoTemplate.save(map, "collectionName1");
this.mongoTemplate.insert(map, "collectionName2");
return Response.successResponse("新增成功");
}
/**
* @description:MongoDB根据条件删除数据
* @param
* @return com.github.collection.common.util.Response
* @author songfayuan
* @date 2019/4/10 20:03
*/
@DeleteMapping("/mongoRemove")
public Response mongoRemove(){
Query query = new Query();
query.addCriteria(Criteria.where("_id").in("10086"));
this.mongoTemplate.remove(query, "collectionName1");
return Response.successResponse("删除成功");
}
/**
* @description:MongoDB根据条件更新数据
* @param
* @return com.github.collection.common.util.Response
* @author songfayuan
* @date 2019/4/10 20:24
*/
@PostMapping("/mongoUpdate")
public Response mongoUpdate(){
List<String> list = new ArrayList<>();
list.add("10086");
list.add("10000");
Query query = new Query();
query.addCriteria(Criteria.where("_id").in(list));
Update update = new Update();
update.set("age", "120");
update.set("updateTime", new Date());
this.mongoTemplate.updateMulti(query, update,"collectionName1");
return Response.successResponse("更新成功");
}
/**
* @description:MongoDB获取数据库中的所有文档集合
* @param
* @return com.github.collection.common.util.Response
* @author songfayuan
* @date 2019/4/10 20:33
*/
@GetMapping("/mongoGetCollectionNames")
public Response mongoGetCollectionNames(){
Set<String> set = this.mongoTemplate.getCollectionNames();
return Response.success(set);
}
/**
* @description:MongoDB根据条件查询一条数据
* @param
* @return com.github.collection.common.util.Response
* @author songfayuan
* @date 2019/4/10 20:46
*/
@GetMapping("/mongoFindOne")
public Response mongoFindOne() {
Query query = new Query();
query.addCriteria(Criteria.where("_id").is("10086"));
return Response.success(this.mongoTemplate.findOne(query, Map.class,"collectionName1"));
}
/**
* @description:MongoDB根据条件查询列表数据
* @param
* @return com.github.collection.common.util.Response
* @author songfayuan
* @date 2019/4/10 20:53
*/
@GetMapping("/mongoFindList")
public Response mongoFindList() {
Query query = new Query();
query.addCriteria(Criteria.where("name").is("songfayuan"));
return Response.success(this.mongoTemplate.find(query, Map.class,"collectionName1"));
}