springboot整合mongodb查询,mongodb批量删除指定数据

  springboot整合mongodb查询,mongodb批量删除指定数据

  00-1010 1.什么是MongoDB 2。在Windows 10上安装MongoDB 3。配置MongoDB服务4。启动服务5。SpringBoot集成了MongoDB

  

目录

MongoDB不同于我们之前熟悉的关系型数据库(MySQL,Oracle)。MongoDB是一个文档数据库,它具有所需的可伸缩性和灵活性,以及所需的查询和索引。

 

  MongoDB将数据存储在灵活的、类似JSON的文档中,这意味着文档的字段可能会因文档而异,数据结构也会随着时间而变化。模型映射到应用程序代码中的对象,这使得数据易于处理。MongoDB是一个分布式数据库,所以它的高可用性、向外扩展和地理分布是内置的,易于使用。另外,MongoDB是免费开源的。

  00-1010打开MongoDB官网

  下载MSI版本(安装版本)

  下载时选择自定义。

  在安装时,注意不要勾上安装可视化插件,否则安装会非常慢(除非你网速够快)

  00-1010配置环境变量

  复制当前路径

  我的电脑-右键-高级系统设置-环境变量-系统变量

  在系统变量中找到路径,编辑它,并添加上面复制的路径。

  00-1010 win r-enter services.msc

  服务启动后,在浏览器中输入127.0.0.1:2701

  这行英文表示服务已成功启动。

  

一、什么是MongoDB

环境准备

 

  操作系统:Window10

  IDE:IntelliJ IDEA 2018.2.4

  数据库:MongoDB

  1)引入依赖性

  依赖关系groupIdorg.springframework.boot/groupId工件Spring-Boot-Starter-Data-MongoDB/工件ID/Dependency 2)在application.yml中添加以下配置

  Spring :数据: MongoDB 3360 URI : MongoDB 3360//localhost/test _ MongoDB完整配置信息如下:

  spring : data : MongoDB :认证-数据库: #认证数据库名称。database: #数据库名称。field-naming-strategy: #要使用的FieldNamingStrategy的完全限定名。grid-fs-database: # GridFS数据库名称。host: # Mongo服务器主机。不能与URI一起设置。password: # Login服务器的登录密码。不能与URI一起设置。port: # Mongo服务器端口。不能与URI一起设置。仓库: type: #要启用的Mongo仓库的类型。

   uri: # Mongo database URI. Cannot be set with host, port and credentials. username: # Login user of the mongo server. Cannot be set with URI.3)新增实体类UserEntity

  

public class UserEntity { @Id private String uid; private String username; private String password; public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "UserEntity{" + "uid=" + uid +  + ", username=" + username +  + ", password=" + password +  + }; }}

4)新建测试。这里我用navicat作为MongoDB的可视化工具进行查看。

 

  测试一:插入操作

  

 @Autowired private MongoTemplate mongoTemplate; @Test public void saveUser(){ UserEntity userEntity1 = new UserEntity(); UserEntity userEntity2 = new UserEntity(); UserEntity userEntity3 = new UserEntity(); userEntity1.setUid("111"); userEntity1.setUsername("用户1"); userEntity1.setPassword("密码1"); userEntity2.setUid("222"); userEntity2.setUsername("用户2"); userEntity2.setPassword("密码2"); userEntity3.setUid("333"); userEntity3.setUsername("用户3"); userEntity3.setPassword("密码3"); mongoTemplate.save(userEntity1); mongoTemplate.save(userEntity2); mongoTemplate.save(userEntity3); }

数据库信息:

 

  

 

  可以看到,MongoDB自动创建了数据库以及通过实体类生成了集合(也就是我们经常说的数据表),而且我们已经通过MongoTemplate往数据库的userEntity集合插入了几条文档(也就是插入了几条记录)。而 _id 为主键,_class 则为实体类包名+类名

  测试二:查询操作

  

 @Autowired private MongoTemplate mongoTemplate;@Test public void findUserByUserName(){ String username = "用户1"; Query query=new Query(Criteria.where("username").is(username)); UserEntity user = mongoTemplate.findOne(query , UserEntity.class); System.out.println(user); }

输出结果:

 

  

UserEntity{uid='111', username='用户1', password='密码1'}

 

  测试三:更新操作

  

 @Autowired private MongoTemplate mongoTemplate; @Test public void updateUser(){ UserEntity userEntity = new UserEntity(); userEntity.setUid("111"); userEntity.setUsername("更新后的用户名"); userEntity.setPassword("更新后的密码"); Query query = new Query(Criteria.where("_id").is(userEntity.getUid())); Update update = Update.update("username",userEntity.getUsername()).set("password",userEntity.getPassword()); //更新返回结果集的第一条 mongoTemplate.updateFirst(query,update,UserEntity.class); //更新返回结果集的所有 //mongoTemplate.updateMulti(query,update,UserEntity.class); }

更新后数据库如图所示:

 

  

 

  测试四:删除操作

  

 @Autowired private MongoTemplate mongoTemplate; @Test public void DeleteByUserId(){ String id = "222"; Query query=new Query(Criteria.where("_id").is(id)); mongoTemplate.remove(query,UserEntity.class); }

删除后数据库如图所示:

 

  

 

  到此这篇关于SpringBoot整合Mongodb实现简单的增删查改的文章就介绍到这了,更多相关SpringBoot整合Mongodb增删查改内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: