1 添加依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

2 application.yml文件

# 不需要认证的方式
spring:data:mongodb:uri: mongodb://localhost:27017/mydb_1# mongodb需要用户名和密码
spring:data:mongodb:uri: mongodb://user1:123456@localhost:27017/mydb_2

3 pojo类编写

package cn.huawei.pojo;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import java.util.List;//@Document是mongodb驱动库提供设置操作的文档集合名称的注解,这里设置集合为user
@Document("user")
public class User {//mongodb会自动处理成 ObjectId("6082825b29a0083013d6a8ac")的类似样子@Idprivate String id;//普通字段@Fieldprivate Integer userId;@Fieldprivate Integer age;@Fieldprivate String name;@Fieldprivate String phone;@Fieldprivate String[] aihao;@Fieldprivate List<Order> orders;
}

4 测试类编写

import cn.huawei.JineErpApplication;
import cn.huawei.pojo.Address;
import cn.huawei.pojo.Order;
import cn.huawei.pojo.User;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import org.bson.types.ObjectId;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Sort;
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.ArrayList;
import java.util.List;
import java.util.regex.Pattern;@SpringBootTest(classes = JineErpApplication.class)
public class Test_1 {@Autowiredprivate MongoTemplate mongoTemplate;/*** 添加记录*/@Testpublic void fangfa_1() {User user = new User(9, 93, "夏雨来", "15258742546");/*存到user表类似地,使用insert也可以达到保存数据的作用*/mongoTemplate.save(user);}/*添加记录,复杂类型的数据*/@Testpublic void fangfa_19(){User user = new User(10, 199, "雄霸天下", "15258742546");user.setAihao(new String[]{"money","car","lvren"});ArrayList<Order> orders = new ArrayList<>();orders.add(new Order("20210423163911","汽车",2));orders.add(new Order("20210423163945","房子",5));user.setOrders(orders);mongoTemplate.insert(user);}/*批量添加记录*/@Testpublic void fangfa_2() {List<User> userList = new ArrayList<>();userList.add(new User(2, 12, "张三", "18888888888"));userList.add(new User(3, 21, "李四", "13333333333"));userList.add(new User(4, 55, "王麻子", "14444444444"));userList.add(new User(5, 63, "陈李厚", "15555555555"));userList.add(new User(6, 85, "村民", "16666666666"));//存到 yonghutable 表mongoTemplate.insert(userList, "yonghutable");//存到user表mongoTemplate.insert(userList, User.class);}/*删除数据*/@Testpublic void fangfa_13() {Query query_1 = new Query();query_1.addCriteria(Criteria.where("userId").is(10));DeleteResult remove = mongoTemplate.remove(query_1, User.class);System.out.println(remove);}/*返回查询到的记录数据,同时也删除*/@Testpublic void fangfa_17(){Query query = new Query();query.addCriteria(Criteria.where("_id").is(new ObjectId("60826407a0450757ccfde19d")));List<User> allAndRemove = mongoTemplate.findAllAndRemove(query, "user");System.out.println(allAndRemove);}/*返回所有数据*/@Testpublic void fangfa_12() {List<User> all = mongoTemplate.findAll(User.class);System.out.println(all);System.out.println(all.size());}/*根据mongodb生成的id查询*/@Testpublic void fangfa_14() {Query query = new Query();query.addCriteria(Criteria.where("_id").is(new ObjectId("60823dd8392f042f46614f10")));List<User> users = mongoTemplate.find(query, User.class);System.out.println(users);}/*查询记录,排序 并 分页显示*/@Testpublic void fangfa_15() {Query query_1 = new Query();query_1.with(Sort.by(Sort.Direction.ASC, "userId"));//从那条记录开始query_1.skip(1);//取多少条记录query_1.limit(3);List<User> users = mongoTemplate.find(query_1, User.class);System.out.println(users);}/*简单 模糊查询用 “regex”*/@Testpublic void fangfa_18(){Query query_1 = new Query(Criteria.where("name").regex("王麻"));List<User> users = mongoTemplate.find(query_1, User.class);System.out.println(users);}/*查询单条数据*/@Testpublic void fangfa_3() {Pattern pattern = Pattern.compile("^.*6$", Pattern.CASE_INSENSITIVE);Query query_1 = new Query(Criteria.where("phone").regex(pattern));User one = mongoTemplate.findOne(query_1, User.class);System.out.println(one);}/*查询多条数据 多个条件查询*/@Testpublic void fangfa_4() {//模糊查询以 ^开始 以$结束 .*相当于Mysql中的%Pattern pattern = Pattern.compile("^1.*$", Pattern.CASE_INSENSITIVE);Query query_1 = new Query(Criteria.where("phone").regex(pattern));//并且 name=张三query_1.addCriteria(Criteria.where("name").is("张三"));//排序query_1.with(Sort.by("age", "userId").descending());List<User> userList = mongoTemplate.find(query_1, User.class, "user");System.out.println(userList);}/*多个条件查询(格式1)*/@Testpublic void fangfa_5() {Query query_1 = new Query();query_1.addCriteria(Criteria.where("name").is("王麻子"));query_1.addCriteria(Criteria.where("phone").is("14444444444"));List<User> userList = mongoTemplate.find(query_1, User.class, "user");System.out.println(userList);}/*多个条件查询(格式2)*/@Testpublic void fangfa_6() {Criteria criteria = new Criteria();criteria.and("name").is("王麻子");criteria.and("phone").is("14444444444");Query query_1 = new Query(criteria);List<User> userList = mongoTemplate.find(query_1, User.class, "user");System.out.println(userList);}/*一个模糊关键字匹配多个字段*/@Testpublic void fangfa_7() {Pattern pattern = Pattern.compile("^.*222$", Pattern.CASE_INSENSITIVE);Criteria criteria = new Criteria();//phone以222结尾的 或者 name以222结尾的criteria.orOperator(Criteria.where("phone").regex(pattern),Criteria.where("name").regex(pattern));//同时满足 phone以222结尾的,和name以222结尾的criteria.andOperator(Criteria.where("phone").regex(pattern),Criteria.where("name").regex(pattern));Query query_1 = new Query(criteria);List<User> userList = mongoTemplate.find(query_1, User.class, "user");System.out.println(userList);}/*更新age汪上递增5*/@Testpublic void fangfa_16(){Query query = new Query();Update update = new Update();update.inc("age",5);UpdateResult updateResult = mongoTemplate.updateMulti(query, update, User.class);System.out.println(updateResult);}/*更新语法:public UpdateResult update(Query query, UpdateDefinition update, Class<?> entityClass)query参数是查询条件对象,update是需要更新的数据对象,entityClass就是对应的JavaBean对象(文档集合类)*/@Testpublic void fangfa_8() {Query query = new Query();query.addCriteria(Criteria.where("userId").is(7));Update update = new Update();update.set("name", "飘过");update.set("other", "顶起");//查询,更新第一条UpdateResult updateResult_1 = mongoTemplate.updateFirst(query, update, User.class);//查询到的,全部更新UpdateResult updateResult_2 = mongoTemplate.updateMulti(query, update, User.class);//有则更新,没有则新增UpdateResult updateResult_3 = mongoTemplate.upsert(query, update, User.class);System.out.println(updateResult_1);}/*添加内嵌文档数据(有则直接加入,没有则进行新增)*/@Testpublic void fangfa_9() {Query query = Query.query(Criteria.where("userId").is(10));//address列为复杂类型,存的是json数据Address dizhi = new Address(1, "湖北", "武汉");Update update = new Update();update.addToSet("address", dizhi);UpdateResult upsert = mongoTemplate.upsert(query, update, User.class);System.out.println(upsert);}/*修改内嵌文档中数据*/@Testpublic void fangfa_10() {/*address列为复杂类型,存的是json数据查询userId为9并且其中address的addressId为1的*/Query query = Query.query(Criteria.where("userId").is(10).and("address.addressId").is(1));Update update = Update.update("address.$.shi", "神农架");//普通类型update.set("address.$.wendu", 33.1);//针对数组类型update.addToSet("address.$.shidu", 99);UpdateResult upsert = mongoTemplate.upsert(query, update, User.class);System.out.println(upsert);}/*删除内嵌文档中数据*/@Testpublic void fangfa_11() {Query query = Query.query(Criteria.where("userId").is(10));Update update = new Update();update.unset("address");UpdateResult updateResult = mongoTemplate.updateFirst(query, update, "user");System.out.println(updateResult);}
}

springboot 整合 mongodb 增删改查 第二篇相关推荐

  1. springboot整合mongodb增删改查入门

    1.配置与依赖 2.实体与repository层 3.测试 适合新手. 要求:安装好mongodb 代码和运行程序如下: 目录: 1.配置与依赖 <dependency><group ...

  2. springboot整合mybatis增删改查(三):mybatis逆向工程

    上一篇已经把项目基本框架完善,接下来就是利用Mybatis Generator逆向工程进行mybatis的整合. 我们在创建项目开始的时候已经勾选web,mybatis,sql等,但是这些依赖还是不够 ...

  3. Spring Boot 中使用 MongoDB 增删改查

    本文快速入门,MongoDB 结合SpringBoot starter-data-mongodb 进行增删改查 1.什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件 ...

  4. 数据库——MongoDB增删改查

    MongoDB增删改查操作 本文包含对数据库.集合以及文档的基本增删改查操作 数据库操作 #1.增 use config #如果数据库不存在,则创建并切换到该数据库,存在则直接切换到指定数据库.#2. ...

  5. spring入门(11)-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象)

    今天是spring的最后一节课,这节课老师讲了spring与hibernate整合完成增删改查的操作,这是很重要的一节课,这也是第一次真正的实现spring结合Hibernate和数据库连接上,下面是 ...

  6. MongoDB 增删改查

    MongoDB 增删改查 学习目标: 学习内容: 使用步骤 数据库 创建数据库 删除数据库 集合 创建集合 删除集合 文档 查找文档 使用 find()查找文档 使用 findOne()查找文档 使用 ...

  7. SpringBoot+MyBatisPlus+Vue增删改查

    SpringBoot+MyBatisPlus+Vue增删改查 建议在写之前会熟练使用vue脚手架,以及掌握vue相关知识 本文章会教你构建一个springboot+mybatisplus+vue 的增 ...

  8. springboot(测试类)整合mybatisplus增删改查

    文章目录 下载地址 1.创建springboot项目(Spring Initializer快速创建) 2.配置文件,数据库等 3.配置,策略,实体类 4.增删改查 查询 查询全部 查询-根据id批量查 ...

  9. SpringBoot集成thymeleaf增删改查示例

    有小伙伴找我要个 thymeleaf 的 demo,说自己集成的总是报错,所以就有了这篇- 关于什么是 thymeleaf 我就不赘述了,相信搜到这篇的大部分是奔着如何集成来的. 本文源码先附上:ht ...

最新文章

  1. 问题一:云服务中那么多的服务器怎么拓扑???
  2. HTML-CSS-JS-PHP的顺序及相关网址(转)
  3. 把php写入织梦,dedeCMS远程写入getshell(测试版本V5.7)
  4. Google实用搜索秘技六则
  5. 合并两个有序数组python_Python3合并两个有序数组代码实例
  6. Python反爬机制介绍
  7. PL/SQL 存储过程学习2 条件语句
  8. FTP开启虚拟用户访问
  9. 软件工程敏捷开发01
  10. 嵌入式设备中支持国密算法的方法(三)——移植Openssl库的步骤说明
  11. 柱状图之最大矩形面积
  12. 淮教鞭:完全免费的电脑版电子教鞭软件 |含淮教鞭的使用说明 | 电脑屏幕画笔软件哪个最好用?
  13. 汪文君PowerMock实战视频
  14. 论文查重软件检测报告怎么看?
  15. wedo+scratch第一次上课
  16. 图片降噪 java_Python图片验证码降噪 — 8邻域降噪
  17. 为什么你的前端工作经验不值钱?
  18. python读取excel日期小数_RPA-使用Python读取Excel日期结果为数字时的转换处理方法...
  19. tcp端对端 ip点对点
  20. Python数据分析 ---- ARMA模型

热门文章

  1. 应用宝认领应用签名_腾讯应用宝认领应用步骤(详细)
  2. 项目七 网络打印的配置与管理
  3. HDMI网络延长器-深圳朗强科技
  4. 什么是延长器?延长器常见类型介绍
  5. 自动延期时间 php,延长session的过期时间
  6. Mybatis学习笔记【part03】增删改查
  7. 非常简单的animation动画
  8. SAS | macro variables macro
  9. 海思HI35xx平台软件开发快速入门之视频分辨率
  10. 苹果CEO蒂姆·库克推出传记 售价13.99美元