【软件环境安装部署】华为云服务器下 Docker 安装 MongoDB 以及 SpringBoot 整合 MongoDB 开发使用

news/2024/10/23 7:30:05/

文章目录

  • 安装测试 MongoDB
    • 拉取镜像
    • 创建和启动容器
    • 登录mongo容器,并进入到【admin】数据库
    • 创建一个用户,mongo 默认没有用户
    • 连接mongo数据库
    • 测试数据库,插入一条语句
    • 测试数据库,查询刚才插入的语句
    • 查看所有数据库
    • 开放指定端口
    • 开放服务器安全组
    • navicat连接测试
    • 查看 mongdb 中的数据库表
  • SpringBoot整合mongoDB
    • 导入依赖
    • 添加yml配置
    • 编写实体类
    • 测试类
    • ApiPost 接口测试

安装测试 MongoDB

拉取镜像

docker pull mongo:latest

创建和启动容器

docker run -d --restart=always -p 27017:27017 --name mymongo -v /data/db:/data/db -d mongo

在这里插入图片描述

登录mongo容器,并进入到【admin】数据库

MongoDB 6.0 及以上版本进入容器使用如下命令

docker exec -it mymongo[创建时对应的MongoDB容器名] mongosh admin

在这里插入图片描述

创建一个用户,mongo 默认没有用户

db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});
【user:‘root’ 】:设置用户名为root
【pwd:‘123456’】:设置密码为123456
【role:‘userAdminAnyDatabase’】:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
【db: ‘admin’】:可操作的数据库
【‘readWriteAnyDatabase’】:赋予用户读写权限

在这里插入图片描述

连接mongo数据库

db.auth('root', '123456')

测试数据库,插入一条语句

 db.user.insert({"name":"金智秀","age":18})

在这里插入图片描述

测试数据库,查询刚才插入的语句

在这里插入图片描述

查看所有数据库

show dbs

在这里插入图片描述

开放指定端口

firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload

开放服务器安全组

在这里插入图片描述

navicat连接测试

在这里插入图片描述

查看 mongdb 中的数据库表

在这里插入图片描述

SpringBoot整合mongoDB

导入依赖

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

添加yml配置

spring:data:mongodb:uri: mongodb://192.168.239.140:27017/testusername: rootpassword: 123456

编写实体类

@Data
@Document("User")
public class User {@Idprivate String id;private String name;private Integer age;private String email;private String createDate;
}

测试类

 @Autowiredprivate MongoTemplate mongoTemplate;//添加@Testpublic void createUser() {User user = new User();user.setAge(20);user.setName("金智秀");user.setEmail("4932200@qq.com");User user1 = mongoTemplate.insert(user);System.out.println(user1);}//查询所有@Testpublic void findUser() {List<User> userList = mongoTemplate.findAll(User.class);System.out.println(userList);}//根据id查询@Testpublic void getById() {User user =mongoTemplate.findById("64846c08a263b2302594b596", User.class);System.out.println(user);}//条件查询@Testpublic void findUserList() {Query query = new Query(Criteria.where("name").is("test").and("age").is(20));List<User> userList = mongoTemplate.find(query, User.class);System.out.println(userList);}//模糊查询@Testpublic void findUsersLikeName() {String name = "est";String regex = String.format("%s%s%s", "^.*", name, ".*$");Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);Query query = new Query(Criteria.where("name").regex(pattern));List<User> userList = mongoTemplate.find(query, User.class);System.out.println(userList);}//分页查询@Testpublic void findUsersPage() {String name = "est";int pageNo = 1;int pageSize = 10;Query query = new Query();String regex = String.format("%s%s%s", "^.*", name, ".*$");Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);query.addCriteria(Criteria.where("name").regex(pattern));int totalCount = (int) mongoTemplate.count(query, User.class);List<User> userList = mongoTemplate.find(query.skip((pageNo - 1) * pageSize).limit(pageSize), User.class);Map<String, Object> pageMap = new HashMap<>();pageMap.put("list", userList);pageMap.put("totalCount",totalCount);System.out.println(pageMap);}//修改@Testpublic void updateUser() {User user = mongoTemplate.findById("64846c08a263b2302594b596", User.class);user.setName("test_1");user.setAge(25);user.setEmail("493220990@qq.com");Query query = new Query(Criteria.where("_id").is(user.getId()));Update update = new Update();update.set("name", user.getName());update.set("age", user.getAge());update.set("email", user.getEmail());UpdateResult result = mongoTemplate.upsert(query, update, User.class);long count = result.getModifiedCount();System.out.println(count);}//删除操作@Testpublic void delete() {Query query =new Query(Criteria.where("_id").is("64846c08a263b2302594b596"));DeleteResult result = mongoTemplate.remove(query, User.class);long count = result.getDeletedCount();System.out.println(count);}

ApiPost 接口测试

在这里插入图片描述


http://www.ppmy.cn/news/328317.html

相关文章

【外企面试系列】必备口语短语与例句 - BC系列

back and forth 来回地,反复地 The children were running back and forth between the playground and the swings. (孩子们在游乐场和秋千之间来回奔跑。)We went back and forth on the decision before finally making up our minds. (我们在这个决定上反复权衡&#xff0…

一文详解!接口测试 API 自动化测试框架

目录 前言 框架定位 框架架构图 框架介绍 技术栈 Case 展示 执行展示 框架优势&#xff1a; 前言 接口测试 API 自动化测试框架可以提高测试效率和自动化程度&#xff0c;通常包括 HTTP 客户端、测试数据管理、测试报告生成、测试用例管理和调度等功能。下面是一个常用…

【大学计算机技术】第一章 测试3

文章目录 选择题 选择题 计算机主存含有大量的存储单元&#xff0c;每个存储单元都可以存放8个Byte。 A. 正确 B. 错误 正确答案&#xff1a; B 计算机有很多I/O接口&#xff0c;用来连接不同类型的I/O设备&#xff0c;但同一种I/O接口只能连接同一种设备。 A. 正确 B. 错误 正…

React Hook入门小案例 在函数式组件中使用state响应式数据

Hook是react 16.8 新增的特性 是希望在不编写 class的情况下 去操作state和其他react特性 Hook的话 就不建议大家使用class的形式了 当然也可以用 这个他只是不推荐 我们还是先创建一个普通的react项目 我们之前写一个react组件可以这样写 import React from "react&qu…

[ICNN 1993] Optimal brain surgeon and general network pruning

Contents IntroductionMethodOptimal brain surgeon (OBS)Computing the inverse HessianThe ( t − o ) → 0 (\mathbf t-\mathbf o)\rightarrow 0 (t−o)→0 Approximation References Introduction 作者提出 Optimal brain damage (OBD) 的改进 Optimal brain surgeon (OB…

中控考勤机忘记密码处理

1、要进入考勤机&#xff0c;首先要知道考勤机的超级管理号码。考勤机的超级号码是8888.可以直接在考勤机屏幕上按出这几个数字。 2、其次是计算考勤机的密码。计算考勤机密码需要工具&#xff0c;也就是计算器&#xff0c;打开手机上的计算器。 3、有了计算器&#xff0c;还需…

连接中控指纹考勤机 zkemkeeper zksoftware ZKTeco

使用vb.net连接中控指纹考勤机需要的软件:1.开发包工具: http://www.zksky.com/Products/Download/Downloadseven/ &#xff08;我使 用的就是开发包下Demo文件&#xff0c;里面有3个文件夹对应不用的考勤机类型&#xff0c;注意是类型不是型号&#xff0c;不清楚就问考勤机公司…

Java spring boot 开发中控Live10R指纹采集器linux(指纹登录系统)

1.需求 需要做一个指纹登录系统&#xff0c;录入指纹&#xff0c;修改指纹等&#xff0c;指纹比对等。 2.开发 开启指纹采集器&#xff0c;指纹采集器base64数据录入到数据库以及指纹登录登出 package com.iot.modules.biz.fp;import com.iot.common.util.CommonUtil; import…