From 1d1d89c6d5f6e69e6f8fbd454fe31d785e7fb3b2 Mon Sep 17 00:00:00 2001 From: xiaoyu <316708138@qq.com> Date: Tue, 15 Feb 2022 17:39:04 +0800 Subject: [PATCH] =?UTF-8?q?MongoDB=20=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springbootwithmongodb/entry/CatTest.java | 107 +++++++++++++++++- 1 file changed, 106 insertions(+), 1 deletion(-) diff --git a/SpringBootWithMongoDB/src/test/java/com/example/springbootwithmongodb/entry/CatTest.java b/SpringBootWithMongoDB/src/test/java/com/example/springbootwithmongodb/entry/CatTest.java index 07e4777..b0a98cd 100644 --- a/SpringBootWithMongoDB/src/test/java/com/example/springbootwithmongodb/entry/CatTest.java +++ b/SpringBootWithMongoDB/src/test/java/com/example/springbootwithmongodb/entry/CatTest.java @@ -1,10 +1,17 @@ package com.example.springbootwithmongodb.entry; +import com.mongodb.client.result.DeleteResult; +import com.mongodb.client.result.UpdateResult; 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 CatTest { @@ -12,12 +19,110 @@ public class CatTest { @Autowired private MongoTemplate mongoTemplate; + private final Class entityClass = Cat.class; + @Test - public void createTest(){ + public void createTest() { Cat cat = new Cat(); cat.setName("糖果"); cat.setAge(3); cat.setLikeCount(100); mongoTemplate.insert(cat); } + + @Test + public void deleteTest() throws NoSuchFieldException { + String id = "620a27c3db5ca321f4cc5754"; + Criteria criteria = (new Criteria(entityClass.getDeclaredField("id").getName())).is(id); + //根据条件删除 + Cat cat = mongoTemplate.findAndRemove(new Query(criteria), entityClass); + System.out.println(cat); + + //直接删除 + Cat cat2 = mongoTemplate.findById("620a27c3db5ca321f4cc5754", entityClass); + assert cat2 != null; + DeleteResult result = mongoTemplate.remove(cat2); + System.out.println(result); + + //findAllAndRemove 和 findAndRemove 的区别在于,前者删除全部匹配的数据,后者只删除一个 + } + + @Test + public void findTest() throws NoSuchFieldException { + //查询全部 + List cats = mongoTemplate.findAll(entityClass); + System.out.println(cats); + + //根据条件查询 + Criteria criteria = (new Criteria(entityClass.getDeclaredField("likeCount").getName())).is(cats.get(0).getLikeCount()); + List cats2 = mongoTemplate.find(new Query(criteria), entityClass); + System.out.println(cats2); + + //根据ID查询 + Cat cat = mongoTemplate.findById(cats.get(1).getId(), entityClass); + System.out.println(cat); + + //查询单条记录 + Criteria criteria2 = (new Criteria(entityClass.getDeclaredField("name").getName())).is(cats.get(0).getName()); + Cat cat2 = mongoTemplate.findOne(new Query(criteria2), entityClass); + System.out.println(cat2); + } + + @Test + public void updateTest() throws NoSuchFieldException { + String id = "620b1b46d6e42202392f5653"; + Criteria criteria = (new Criteria(entityClass.getDeclaredField("id").getName())).is(id); + + Update update = new Update(); + update.set(entityClass.getDeclaredField("name").getName(), "炸酱233"); + update.inc("likeCount"); + + //单条更新 + UpdateResult updateResult = mongoTemplate.updateFirst(new Query(criteria), update, entityClass); + System.out.println(updateResult); + + Criteria criteria2 = (new Criteria(entityClass.getDeclaredField("age").getName())).is(3); + + Update update2 = new Update(); + update2.set(entityClass.getDeclaredField("name").getName(), "炸酱"); + update2.inc("age"); + + //批量更新 + UpdateResult updateResult2 = mongoTemplate.updateMulti(new Query(criteria2), update2, entityClass); + System.out.println(updateResult2); + } + + @Test + public void countTest() throws NoSuchFieldException { + Criteria criteria = (new Criteria(entityClass.getDeclaredField("age").getName())).gte(3); + //计数 + long count = mongoTemplate.count(new Query(criteria), entityClass); + System.out.println(count); + } + + @Test + public void otherTest(){ + //获取集合名称 + String collectionName = mongoTemplate.getCollectionName(entityClass); + System.out.println(collectionName); + + //判断集合是不是存在 false + boolean check = mongoTemplate.collectionExists("dog"); + System.out.println(check); + + //判断集合是不是存在 true + boolean checkCat = mongoTemplate.collectionExists("cat"); + System.out.println(checkCat); + + //创建集合 + mongoTemplate.createCollection("bug2"); + + //删除集合 + mongoTemplate.dropCollection("bug2"); + } + + + + + } -- GitLab