SpringCloud/SpringBoot集成MongoDB

本代码适用于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"));
	}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋发元

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值