spring boot整合mongodb使用简单介绍 spring整合mongo使用简单介绍 spring整合mongoDB使用简单介绍

6 篇文章 0 订阅

最近在项目中使用到了mongodb,第一次用,各种百度加问大佬,简单记录下自己的理解,一是希望能帮助到同样要学习mongo的同学,另外就是以后可以看一下复习复习。

简单理解

第一步导入mongo的依赖

		<!--mongodb-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-mongodb</artifactId>
		</dependency>

这里没有引入具体的版本 ,因为你是用spring boot的某一个版本后,会自动给你匹配对应的版本。

然后配置数据库地址,spring boot一般都用yml 简单贴下配置

spring:
  data:
    mongodb:
      uri: mongodb://数据库链接:端口号/数据库名(类似mysql的数据库名)

这两部做完之后,我们就还可以愉快的进行增删改查操作了。
上面的依赖给我们提供了两个类供我们进行增删改查操作,
一个是MongoTemplate,另一个是MongoRepository
单就查询插入的话 我是比较喜欢MongoRepository的,但也是新手不知道具体哪一个效率比较好。

后者类似spring data jpa,是spring封装的针对查询的一个类,简单介绍下使用方法。
下面这个是spring data jpa的步完全相同,但也有类似的地方,讲的是非常好的

https://www.cnblogs.com/cmfwm/p/8109433.html

MongoTemplate

首先介绍下MongoTemplate的使用方法,
在这里插入图片描述

查询

可以看到我们要首先创建条件,通过query对象,更新的话创建update对象,简单列一个例子

排序查询,先 最下面的 include 选择某字段输出

     	Sort sort = new Sort(Sort.Direction.DESC,"createTime");
//        Query query = new Query(Criteria.where("type").is("site")).with(sort);
        Query query = new Query().with(sort);
        query.fields().include("type").include("number");

在这里插入图片描述

更新

更新可以看我下面写的一篇,这里介绍了一个删除操作,使用到了update方法,参考一下,基本步骤差不多
https://blog.csdn.net/wonder_dog/article/details/82682099

MongoTemplate有一个upsert方法,假使数据库有执行更新操作,没有的话就执行插入操作

删除

删除一般都是逻辑删除,参考上面更新操作。真正删除的话应该就是创建query对象,然后使用remove方法

查出数据后 删除指定的字段 使用unset
set是更新指定字段 set设置的原本不存在的字段加入后 字段不是数组
总结 set 有值更新 无值 添加
addToSet(string ,object) addToSet 添加一个没有不存在的字段 字段是数组类型,再次添加变成数组存储,原来存在的字段固定不是数组的 再添加会报错

addToSet(string) 慎用 会清掉除id外的其他数据

pull 删除存储的 非类中类的 数组的 指定的字段 假使类内另一个类的数组里的数据 不可直接使用 例子 前面添加到 object.mobile 字段多个数据 可以根据下面样式进行删除

		 Sort sort = new Sort(Sort.Direction.DESC,"createTime");
        Query query = new Query(Criteria.where("number").is("861478762582192423")).with(sort);
        Update update = new Update();
        update.set("object.mobile","123");
        update.addToSet("object.mobile","123");
//        update.unset("object.contractCode");
//        update.addToSet("cat");
//        update.addToSet("cat",456);
//        update.pull("object.mobile","123");

        mongoTemplate.upsert(query,update,FaeMongo.class);

添加

一种是使用上面说的upsert方法,另一种就是 传统的insert方法了,传入你的实体类就好,前提条件,你的实体类使用注解对应了你数据库里的表, 如下

@Document(collection="表名")

上面是MongoTemplate的使用方法,下面再介绍下MongoRepository的使用

MongoRepository

导入上面的依赖后就可以使用这个类了,自己建一个接口继承这个方法,类似下面这样
在这里插入图片描述
然后,再service注入这个方法,就可以进行查询了
原来简单写了个分页查询的方法,可以参考下
https://blog.csdn.net/wonder_dog/article/details/82319216
其他根据某一字段查询的话,就可以再我们创建的接口那加一个方法就好了,类似上面分享的spring data jpa里面写的,
举个例子,你想根据id查询,你可以创建一个方法类似下面

实体类  findById(参数)

其余类似加入有name属性 ,就findByName(参数);
个人感觉这个方法还很好用的,这个也有好多分享的,下面贴几个链接,大家可以去看下
搜索的话搜索 mongoRepository就会有好多条件查询的

学习链接

https://blog.csdn.net/qq_38288606/article/details/78673528

分页查询
https://www.cnblogs.com/wslook/p/9275861.html

or查询
https://blog.csdn.net/tjbsl/article/details/80620303

分页查询整理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值