概述
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 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/303218.html
標籤:其他
上一篇:我用Python爬取了五千張美女圖壁紙,每天一張忘記初戀
下一篇:Java單鏈表反轉
