Spring Boot MongoDB 简单入门

概述

MongoDB 是一个基于分布式文件存储的数据库,由C++语言编写。旨在为Web 应用提供可拓展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB 无 Schema 限制,灵活度很高。 数据格式是BSON,BSON是一种类似JSON 的二进制形式的存储格式,简称 Binary Json 。它和JSON 一样,支持内嵌的文档对象和数组对象。

MongoDB 支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,还支持地数据建立索引。

跟关系型数据库对比:

Mysql MongoDB
库 Database 库 DataBase
表 Table 集合 Collection
行 row 文档 document
列 cloumn 字段 field
joins 嵌入文档或者链接

下载安装

官网下载地址

https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-5.0.3-signed.msi

安装

一路下一步即可。

查看MongoDB版本号

db.version()
5.0.3 

显示所有数据库的列表

只会显示有数据的数据库

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

创建数据库

有该数据库会使用,没有该数据库会创建

use databaseName

集成Springbooot

添加依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>mongodb_demo_01</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mongodb_demo_01</name>
    <description>mongodb_demo_01</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!--   mongoDB自动装配包     -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
        <!--lombok 省略getter  和 setter-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--测试包,方便测试-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

添加配置

src/main/resources/application.properties

#mongoDB 相关配置
spring.data.mongodb.database=test
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017

创建实体类

com/example/mongodb_demo_01/pojo/Student.java

package com.example.mongodb_demo_01.pojo;

import lombok.Builder;
import lombok.Data;

@Builder
@Data
public class Student {

    /**
     * 姓名
     */
    private String name;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 年级
     */
    private String grade;

    /**
     * 班级
     */
    private String classroom;
}

创建测试类

com/example/mongodb_demo_01/MongoDBDemo01Test.java

MongoTemplate用法参考:https://docs.spring.io/spring-data/data-mongo/docs/current/api/org/springframework/data/mongodb/core/MongoTemplate.html

package com.example.mongodb_demo_01;

import com.example.mongodb_demo_01.pojo.Student;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;

import java.util.List;

@SpringBootTest
public class MongoDBDemo01Test {

    @Autowired
    private MongoTemplate mongoTemplate;

    @Test
    public void insert(){
        Student student = Student.builder().name("张三").age(10).grade("一年级").classroom("1班").build();
        mongoTemplate.insert(student);
    }

    @Test
    public void update(){
        Query query = new Query();
        query.addCriteria(Criteria.where("grade").is("一年级"));
        mongoTemplate.updateFirst(query, Update.update("age",11),Student.class);
    }

    @Test
    public void delete(){
        Query query = new Query();
        query.addCriteria(Criteria.where("age").is(11));
        mongoTemplate.remove(query,Student.class);
    }



    @Test
    public void find(){
        Query query = new Query();
        query.addCriteria(Criteria.where("grade").is("一年级"));
        List<Student> students = mongoTemplate.find(query, Student.class);
        students.forEach(student -> {
            System.out.println(student.toString());
        });
    }
}

示例代码地址

spring-boot-projects/ mongodb_demo_01

https://gitee.com/liuyingke/spring-boot-projects.git

本文由博客一文多发平台 OpenWrite 发布!

posted @ 2021-09-26 18:26  君子坐而论道  阅读(268)  评论(0编辑  收藏  举报