目录
一、Mongodb概念
二、SpingBoot集成Mongodb
三、实现增删改查操作
一、Mongodb概念
MongoDB是一个开源的文档型数据库,属于NoSQL数据库中的一种。它使用BSON(类似于JSON)格式存储数据,具有高性能、高可用性和易于扩展的特点。MongoDB的主要特点包括:
-  面向文档:MongoDB存储的是BSON格式的数据,这是一种类似JSON的二进制格式,可以存储复杂的数据结构,如数组和嵌套文档。 
-  分布式:MongoDB支持水平扩展,可以通过分片技术将数据分布在多个服务器上,实现高可用性和负载均衡。 
-  高性能:MongoDB提供了丰富的索引类型,支持快速查询和更新操作。此外,它还支持多种查询优化策略,如投影、排序等。 
-  灵活的数据模型:MongoDB允许用户在运行时修改数据结构,无需进行复杂的表结构变更。 
-  高可用性:MongoDB支持自动故障转移和数据冗余,可以在主节点故障时自动切换到备用节点,确保数据的持久性和一致性。 
-  支持多种编程语言:MongoDB提供了多种编程语言的驱动程序和库,如Java、Python、C#等,方便开发者进行集成和使用。 
二、SpingBoot集成Mongodb
打开命令行可以看到版本,也可以输入命令:db.version()来查看版本

pom配置
		<dependency>
		    <groupId>org.mongodb</groupId>
		    <artifactId>mongo-java-driver</artifactId>
		    <version>3.12.8</version>
		</dependency>配置application.properties
spring.data.mongodb.uri=mongodb://localhost:27017/dataBaseName这里参数dataBaseName需要改成你自己要连接的库名
三、实现增删改查操作
以这张数据表为例子

1.创建实体类
package com.kero99.pojo;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import com.alibaba.fastjson.annotation.JSONField;
@Document(collection = "测试集合")
public class TestCollection {
	
		@Id
	    @Field("id")
	    private String id;
	    @Field("testName")
	    private String testName;
	    
	    @Field("testAge")
	    private Integer testAge;
	    @Field("updateTime")
	    private String updateTime;
		public String getId() {
			return id;
		}
		public void setId(String id) {
			this.id = id;
		}
		public String getTestName() {
			return testName;
		}
		public void setTestName(String testName) {
			this.testName = testName;
		}
		public Integer getTestAge() {
			return testAge;
		}
		public void setTestAge(Integer testAge) {
			this.testAge = testAge;
		}
		public String getUpdateTime() {
			return updateTime;
		}
		public void setUpdateTime(String updateTime) {
			this.updateTime = updateTime;
		}
	    
		
	    
}
2.实现增删改查mongdb操作
MgdbController实现
package com.kero99.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.kero99.pojo.JSONResult;
import com.kero99.service.MgdbDataProcessService;
@RestController
public class MgdbController {
	@Autowired
	private MgdbDataProcessService mgdbDataProcessService;
	
	@RequestMapping("/queryTest")
	public JSONResult queryTest() {
		JSONResult result=mgdbDataProcessService.queryTest();
		return result;
	}
	@RequestMapping("/queryAllTest")
	public JSONResult queryAllTest() {
		JSONResult result=mgdbDataProcessService.queryAllTest();
		return result;
	}
	@RequestMapping("/addTest")
	public JSONResult addTest() {
		JSONResult result=mgdbDataProcessService.addTest();
		return result;
	}
	@RequestMapping("/editTest")
	public JSONResult editTest() {
		JSONResult result=mgdbDataProcessService.editTest();
		return result;
	}
	
	@RequestMapping("/removeTest")
	public JSONResult removeTest() {
		JSONResult result=mgdbDataProcessService.removeTest();
		return result;
	}
}
ServiceImpl实现
package com.kero99.service.impl;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
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 org.springframework.stereotype.Service;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.kero99.pojo.JSONResult;
import com.kero99.pojo.TestCollection;
import com.kero99.pojo.UserInfo;
import com.kero99.service.MgdbDataProcessService;
import com.kero99.utils.DateUtils;
import com.kero99.utils.UUIDUtil;
@Service
public class MgdbDataProcessImpl  implements MgdbDataProcessService{
	
	@Autowired
    private MongoTemplate mongoTemplate;
	@Override
	public JSONResult queryTest() {
	  Query query = new Query();
	  query.addCriteria(Criteria.where("testName").is("111"));
	  List<TestCollection> userInfo = mongoTemplate.find(query, TestCollection.class,"测试集合");
	  return JSONResult.ok(userInfo);
	}
	@Override
	public JSONResult addTest() {
		TestCollection testCollection=new TestCollection();
		testCollection.setId(UUIDUtil.generateUUID());
		testCollection.setTestName("111");
		testCollection.setTestAge(22222);
		testCollection.setUpdateTime(DateUtils.dateToString(new Date()));
        String jsonString = JSONObject.toJSONString(testCollection);
        mongoTemplate.insert(jsonString,"测试集合");
		return JSONResult.ok("插入成功");
	}
	@Override
	public JSONResult editTest() {
		 Query query = new Query();
	        query.addCriteria(Criteria.where("_id").is("670f83635f62f209a8335335"));
	        Update update = new Update();
	        update.set("testName", "555");
	        mongoTemplate.updateMulti(query, update, "测试集合");
			return JSONResult.ok("修改成功");
	}
	@Override
	public JSONResult removeTest() {
		 Query query = new Query();
	        query.addCriteria(Criteria.where("_id").is("670f83635f62f209a8335335"));
	        mongoTemplate.remove(query,"测试集合");
			return JSONResult.ok("删除成功");
	}
	@Override
	public JSONResult queryAllTest() {
       List<TestCollection> result = mongoTemplate.findAll(TestCollection.class, "测试集合");
       return JSONResult.ok(result);
	}
	
}



















