栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot mongodb的增加、删除、修改、查询、分页

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot mongodb的增加、删除、修改、查询、分页

新增,以下两种方式可以直接新增

第一种实体的方式,可以嵌套实体

@Data
    class Student{

        @Id
        @JsonProperty
        private String id;
        private String name;

        private String age;
        private Classc classc;
    }

    @Data
    class Classc{
        private String cName;
        private String teacherName;
    }
    @Test
    public void addTest(){
        Student student = new Student();
        Classc classc = new Classc();
        student.setAge("10");
        student.setName("ces");
        classc.setCName("yuwen");
        classc.setTeacherName("老刘");
        student.setClassc(classc);
        student= mongoTemplate.save(student, MongoConstant.COLLECTION_FORM_DATA);
        System.out.println(student.getId());
    }

第二种jsonObject的类型

@Test
    public void addTestJsonObject(){
        JSONObject student = new JSONObject();
        JSONObject classc = new JSONObject();
        student.put("age","10");
        student.put("name","ces");
        classc.put("cName","yuwen");
        classc.put("teacherName","老刘");
        student.put("classc",classc);
        student= mongoTemplate.save(student, MongoConstant.COLLECTION_FORM_DATA);
        System.out.println(student.getString("_id"));
    }

删除,可根据自己的条件进行删除

@Test
    public void deleteTest(){
        Query query = new Query();
        Criteria criteria = new Criteria();
        query.addCriteria(criteria.and("_id").is("6295b17c9e9baf344e007414"));
        mongoTemplate.remove(query, MongoConstant.COLLECTION_FORM_DATA);
    }

修改

第一种使用save的方式修改,一般这种只能修改单个。这种修改的方式是通过id去修改,如果id不存在就新增一个,存在就修改为新传入的数据

 @Test
    public void updateTest(){
//        Query query = new Query();
//        Criteria criteria = new Criteria();
//        query.addCriteria(criteria.and("_id").is("6295b17c9e9baf344e007414"));
        Student student = new Student();
        Classc classc = new Classc();
        student.setId("6295b43cd4c2b106ea161e39");
        student.setAge("100");
        student.setName("cesu");
        classc.setCName("yuwen");
        classc.setTeacherName("老刘");
        student.setClassc(classc);
        mongoTemplate.save(student, MongoConstant.COLLECTION_FORM_DATA);

//jsonObject类型修改
JSONObject student = new JSONObject();
//这里会特殊点,id设置
student.put("_id",new ObjectId("6295b17c9e9baf344e007414"));
        JSONObject classc = new JSONObject();
        student.put("age","10");
        student.put("name","ces");
        classc.put("cName","yuwen");
        classc.put("teacherName","老刘");
        student.put("classc",classc);
        student= mongoTemplate.save(student, MongoConstant.COLLECTION_FORM_DATA);
    }

第二种修改根据条件修改

@Test
    public void updateByQueryTest(){
        Query query = new Query();
        Criteria criteria = new Criteria();
       
        query.addCriteria(criteria.and("age").is("10"));
        Update update = new Update();
        update.set("name","upCes");
        //年龄为10的第一个数据
        mongoTemplate.updateFirst(query,update, MongoConstant.COLLECTION_FORM_DATA);
//批量更新
        //mongoTemplate.updateMulti(query,update, MongoConstant.COLLECTION_FORM_DATA);
    }

查询

@Test
    public void queryTest(){
        //单个条件查询,嵌套的实体查询会报异常。这种实体上面是没有继承JSONObject的情况。如果继承了jsonObject就不会报错异常。
        Query query = new Query();
        Criteria criteria = new Criteria();
        query.addCriteria(criteria.and("_id").is("6295b43cd4c2b106ea161e39"));
        JSONObject students = mongoTemplate.findOne(query,JSONObject.class,MongoConstant.COLLECTION_FORM_DATA);
        String jsonStr = JSONObject.toJSONString(students);
        //这里不能用内部类 所以在其他包下面新建了类
        com.cqec.dmplatsystem.Student student = JSONObject.parseObject(jsonStr, com.cqec.dmplatsystem.Student.class);
        System.out.println(student.getClassc().getCName());
    }
    

分页查询

@Test
    public void queryPageTest() {
        Query query = new Query();
        //查询年龄为10姓名为zhansan的数据
        query.addCriteria(new Criteria("age").is("10"));
        query.addCriteria(new Criteria("name").is("zhansan"));
        long count = mongoTemplate.count(query, JSONObject.class, MongoConstant.COLLECTION_FORM_DATA);
        if (count > 0) {
            //第一页 每页5个数据 根据时间time倒序排序
            Pageable pageable = PageRequest.
                    of(1, 5, Sort.by(Sort.Order.desc("time")));
            query.with(pageable);
            List results = mongoTemplate.find(query, JSONObject.class, MongoConstant.COLLECTION_FORM_DATA);
        }
    }

查询返回指定的字段

 @Test
    public void queryIncFieldTest() {
        Query query = new Query();
        //查询年龄为10姓名为zhansan的数据
        query.addCriteria(new Criteria("age").is("10"));
        query.addCriteria(new Criteria("name").is("zhansan"));
        long count = mongoTemplate.count(query, JSONObject.class, MongoConstant.COLLECTION_FORM_DATA);
        if (count > 0) {
            //第一页 每页5个数据 根据时间time倒序排序
            Pageable pageable = PageRequest.
                    of(1, 5, Sort.by(Sort.Order.desc("time")));
            query.with(pageable);
            //返回指定的字段
            query.fields().include("_id");
            List results = mongoTemplate.find(query, JSONObject.class, MongoConstant.COLLECTION_FORM_DATA);
        }
    }

模糊查询

 @Test
    public void queryReFieldTest() {
        Query query = new Query();
        //模糊匹配名字为shansan的
        //全模糊匹配  ^.*数据.*$ 左模糊 ^数据.*$  右模糊 ^.*数据$  全匹配 ^数据$
        Pattern patternMa = Pattern.compile("^.*" + "zhansan" + ".*$", Pattern.CASE_INSENSITIVE);
        query.addCriteria(new Criteria().and("name").regex(patternMa));
        long count = mongoTemplate.count(query, JSONObject.class, MongoConstant.COLLECTION_FORM_DATA);
        if (count > 0) {
            //第一页 每页5个数据 根据时间time倒序排序
            Pageable pageable = PageRequest.
                    of(1, 5, Sort.by(Sort.Order.desc("time")));
            query.with(pageable);
            //返回指定的字段
            query.fields().include("_id");
            List results = mongoTemplate.find(query, JSONObject.class, MongoConstant.COLLECTION_FORM_DATA);
        }
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/940912.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号