Spring Boot 整合 MongoDB

MongoDB 简介
MongoDB 是一个基于分布式文件存储的数据库。由 C++语言编写。旨在为 WEB 应用 提供可扩展的高性能数据存储解决方案。
MongoDB 是一个跨平台的,面向文档的数据库,是当前 NoSQL 数据库产品中最热门 的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关 系数据库的产品。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以 存储比较复杂的数据类型。
Mongo 最大的特点是它支持的查询语言非常强大,其语法有点 类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且 还支持对数据建立索引。

它的特点是高性能、易部署、易使用,存储数据非常方便。MongoDB 有很多优点,但缺点也是很明显的,比如不能建立实体关系、没有事务管理机制等。
MongoDB 安装
MongoDB 提供了 Linux、Windows、OSX 等操作系统的安装包
操作系统版本的 MongoDB,安装步骤如下:
1. 进入官网:https://www.mongodb.com/download-center/community,下载 MongoDB 服务端安装包

安装完成后,在你的安装目录下的 data 的目录下,创建一个 db 文件(例如 F:\Program Files\MongoDB\data\db),用于数据库的存放。因为启动 MongoDB 服务之前必 须创建数据库存放的文件夹,否则命令不会自动创建,而且不能启动成功。
 4 .配置环境变量(mongodb 安装目录下的 bin 目录)

打开命令窗口,输入:mongod --dbpath F:\Program Files\MongoDB\data\db(这 是自定义安装目录)命令启动 MongoDB 服务
启动 MongoDB 客户端,另外打开一个 cmd 命令窗口,执行 mongo 命令

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mongo</groupId>
    <artifactId>mongodb</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <!-- 声明项目配置依赖编码格式为 utf-8 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <fastjson.version>1.2.24</fastjson.version>
    </properties>

    <dependencies>
        <!--mongodb的依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
spring.data.mongodb.uri=mongodb\://localhost\:27017/test
package com.tszr.mongo.entity;

import java.util.Date;

public class Book {
    private Integer id;
    private String name;
    private Integer price;
    private Date updateTime;

    public Book() {
    }

    public Book(Integer id, String name, Integer price, Date updateTime) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.updateTime = updateTime;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getPrice() {
        return price;
    }

    public void setPrice(Integer price) {
        this.price = price;
    }

    public Date getUpdateTime() {
        return this.updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
}
package com.tszr.mongo.controller;

import com.tszr.mongo.entity.Book;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.tszr.mongo.dao.MongoTestDao;

@RestController
public class MongoTestController {
    @Autowired
    private MongoTestDao mongoTestDao;

    @PostMapping("/mongo/save")
    public String saveObj(@RequestBody Book book) {
        return mongoTestDao.saveObj(book);
    }

    @GetMapping("/mongo/findAll")
    public List<Book> findAll() {
        return mongoTestDao.findAll();
    }

    @GetMapping("/mongo/findOneByName")
    public Book findOneByName(@RequestParam String name) {
        return mongoTestDao.getBookByName(name);
    }

    @PostMapping("/mongo/update")
    public String update(@RequestBody Book book) {
        return mongoTestDao.updateBook(book);
    }

    @PostMapping("/mongo/delOne")
    public String delOne(int id) {
        return mongoTestDao.deleteBook(id);
    }
}
package com.tszr.mongo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

 

MongoDB 客户端 可选用NoSQL Manager for MongoDB。下载地址: https://www.mongodbmanager.com/download,
 MongoDB 常用的一些 SQL 语法,具体示例代码如下:
1 查询
show dbs; 查看所有数据库  
show tables; 查询表 
 db.user.find(); 查询 user 集合(表)  
db.user.findOne(); 查询第一条数据 
db.user.find({"age":{$gt:10}}); 根据条件查询  
show collections; 显示所有集合 
db.user.find({"age":{$gt:"10"}}) 年龄大于 10 的数据
2 切换数据库
 use test
3 增加
db.createCollection("test") 创建集合(创建数据库)  
db.user.insert({"id":"1","name":"beixi","age":"18"}) 直接创建表及插入数据
4 修改
db.user.update({"id":"1"},{$set:{"name":"jzj"}})

5 删除
db.dropDatabase()(要先切换到要删除的数据库,然后执行该语句) 
 db.user.drop() 删除集合/表 user  
db.user.remove({"name":"jzj"}) 删除某一条数据  
db.user.remove({}) 删除表内所有数据
原文地址:https://www.cnblogs.com/tszr/p/15450322.html