MongoDB学习笔记之整合SpringBoot

本文档介绍了如何在SpringBoot应用中整合MongoDB,包括环境准备、依赖引入、配置YML,以及如何使用mongoTemplate。详细讲解了集合操作、文档操作(如创建实体、添加、查询、更新和删除文档)、聚合操作,并给出了具体的Java实现示例,同时分享了一个小技巧,即如何在操作中去掉_class属性。
摘要由CSDN通过智能技术生成

环境准备

1、引入依赖

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

2、配置yml

spring:
  data:
    mongodb:
      uri: mongodb://fox:fox@192.168.65.174:27017/test?authSource=admin
      #uri等同于下面的配置
      #database: test
      #host: 192.168.65.174
      #port: 27017
      #username: fox
      #password: fox
      #authentication-database: admin

连接配置参考文档:Connection String URI Format — MongoDB Manual

3、使用时注入mongoTemplate

@Autowired
MongoTemplate mongoTemplate;

集合操作

@Test
public void testCollection(){
    boolean exists = mongoTemplate.collectionExists("emp");
    if(exists){
        //删除集合
        mongoTemplate.dropCollection("emp");
    }
    //创建集合
    mongoTemplate.createCollection("emp");
}

文档操作

相关注解:

  • @Document
  • 修饰范围: 用在类上
  • 作用: 用来映射这个类的一个对象为mongo中一条文档数据。
  • 属性:( value 、collection )用来指定操作的集合名称

    

  • @Id
  • 修饰范围: 用在成员变量、方法上
  • 作用: 用来将成员变量的值映射为文档的_id的值

  • @Field
  • 修饰范围: 用在成员变量、方法上
  • 作用: 用来将成员变量及其值映射为文档中一个key:value对。
  • 属性:( name , value )用来指定在文档中 key的名称,默认为成员变量名

  • @Transient
  • 修饰范围:用在成员变量、方法
  • 作用:用来指定此成员变量不参与文档的序列化

创建实体

@Document("emp") //对应emp集合中的一个文档
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Employee {

    @Id //映射文档中的_id
    private Integer id;
    @Field
    private String name;
    @Field
    private int age;
    @Field
    private Double salary;
    @Field
    private Date birthday;

}

添加文档

        insert方法返回值是新增的Document对象,里面包含了新增后_id的值。如果集合不存在会自动创建集合。通过Spring Data MongoDB还会给集合中多加一个_class的属性,存储新增时Document对应java中类的全限定路径。这么做为了查询时能把Document转换为java类型。

@Test
public void testInsert(){

    Employee employee = new Employee(1,"小花",30,10000.00,new Date());
    
    //添加文档
    //save: _id存在时更新数据
    //mongoTemplate.save(employee);
    //insert: _id存在抛出异常 支持批量操作
    mongoTemplate.insert(employee);

    List<Employee> list = Arrays.asList(
        new Employee(2, "张三", 21,5000.00, new Date()),
        new Employee(3, "李四", 26,8000.00, new Date()),
        new Employee(4, "王五",22, 8000.00, new Date()),
        new Employee(5, "张龙",28, 6000.00, new Date()),
        new Employee(6,
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

30岁老阿姨

支持一下哦!!

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

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

打赏作者

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

抵扣说明:

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

余额充值