MongoDB下载安装入门 + SpringBoot简单集成

news2024/12/23 18:47:57

MongoDB安装入门 + SpringBoot简单集成

  • MongoDB下载安装
    • 下载安装
    • 连接图形化界面
      • MongoDB Compass
    • Navicat Premium
  • Spring Boot集成API操作
    • 添加maven
    • 配置数据库连接
    • 调用Mongo API

MongoDB下载安装

下载安装

MongoDB官网地址:https://www.mongodb.com/
下载地址:https://www.mongodb.com/try/download/community

选择需要的版本进行安装。点击下载下来的msi文件,根据指引默认安装。

在这里插入图片描述

安装时需要勾选Install MongoDB Compass,安装图形化界面。

在这里插入图片描述

如果想要更便捷,可以使用docker下载安装。

# 拉取mongo镜像
docker pull mongo
# 运行mongo
docker run -d --name mongodb -p 27017:27017 mongo

# -d 参数表示后台运行容器。
# --name mongodb 给容器命名,便于后续管理。
# -p 27017:27017 将宿主机的27017端口映射到容器的27017端口,这样您就可以通过宿主机的27017端口访问MongoDB服务。
# mongo 是使用的镜像名称,如果您之前下载了特定版本,这里就写那个版本号

# 运行mongo,指定数据挂载位置(数据持久化)
docker run -d --name mongodb -p 27017:27017 -v mongodb_data:/data/db mongo

# 通过MongoDB客户端或命令行工具连接到它
mongo --host localhost --port 27017

连接图形化界面

MongoDB Compass

MongoBD有默认的图形化界面 MongoDB Compass,在上面的msi包安装过程中选择就会安装。
双击打开,如图:
在这里插入图片描述
默认有如下库:
在这里插入图片描述

创建一个测试表t_test

在这里插入图片描述
在这里插入图片描述

Navicat Premium

在这里插入图片描述

在Navicat中创建MongoDB连接。

在这里插入图片描述

测试连接,成功。

在这里插入图片描述

新建查询,选择使用的database。

# 切换到admin库
use admin;

# 为当前库创建一个用户并指定角色
db.createUser({user:"admin",pwd:"admin",roles:["root"]});

# 查询当前数据库中所有的用户
show users;

# 查询当前数据库中所有的用户
db.system.users.find().pretty();

在这里插入图片描述

Spring Boot集成API操作

添加maven

在已有的Spring boot的项目中添加依赖

<!-- 具体版本根据当前系统需要的版本进行指定 -->

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

配置数据库连接

在application.properties中配置

spring.data.mongodb.uri=mongodb://127.0.0.1:27017/local

在application.yml中配置

# 不带密码的配置
spring:
  data:
    mongodb:
      uri: mongodb://localhost:27017/local

# 带密码的配置
spring:
  data:
    mongodb:
      uri: mongodb://user1:password1@localhost:27017/local?authSource=admin&authMechanism=SCRAM-SHA-1

调用Mongo API

TestEntity 可以为任意实体类。

import com.ccnest.common.core.flow.entity.TestEntity;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * @author Joi
 * @since 2024/5/29 16:59
 */
@Component
public class MongoTableTestMapper {

    /**
     * 注入模板
     */
    @Resource
    private MongoTemplate mongoTemplate;
    
    /**
     * 添加数据
     */
    public void addTestEntity (TestEntity entity) {
        mongoTemplate.save(entity, "t_test");
    }

    /**
     * 查询数据
     */
    public TestEntity getTestEntity (String id) {
        return mongoTemplate.findById(id, TestEntity.class, "t_test");
    }

}

添加代码测试

import com.alibaba.fastjson.JSONObject;
import com.ccnest.custom.homestaycq.mapper.MongoTableTestMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;

/**
 * @author Joi
 * @since 2024/3/22 17:50
 */
@SpringBootTest(classes = Application.class)
@RunWith(SpringRunner.class)
public class DemoTest {

    @Resource
    MongoTableTestMapper mongoTableTestMapper;

    @Test
    public void testMongoDBInsert() {
        String jsonStr = "{\n" +
                "        \"applicationDefineId\": \"dd3361ed199d4c678476cbf47fedb06e\",\n" +
                "        \"chainDefineId\": null,\n" +
                "        \"chainState\": 1,\n" +
                "        \"depth\": 1,\n" +
                "        \"flowNodeDefineId\": \"30f24a79364f92b38158ddaccdc832e6\",\n" +
                "        \"follow\": false,\n" +
                "        \"remark\": null,\n" +
                "        \"rootId\": \"d6301246ab3f94e96ac3b66ba1445022\",\n" +
                "        \"tag\": null,\n" +
                "        \"targetNodeDefineIds\": null,\n" +
                "        \"version\": 1\n" +
                "    }";
        TestEntity entity = JSONObject.parseObject(jsonStr, TestEntity.class);
        mongoTableTestMapper.addUser(entity);
    }

    @Test
    public void getFlowNodeInstance() {
        TestEntity entity = mongoTableTestMapper.getTestEntity("6656ff67c5cd105fc021970d");
        System.out.println(entity);
    }

}

获取的实体数据。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1789262.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI-WEB-1 vulnhub靶场

AI-WEB-1 端口扫描 仅开放80端口 访问80端口 啥也没有 目录扫描 查看robots.txt 发现两个新目录 Disallow: /m3diNf0/ Disallow: /se3reTdir777/uploads/全都无权限访问 加入路径后再次扫描目录 发现/m3diNf0/目录下存在info.php&#xff0c;/se3reTdir777/目录下存在ind…

HTML动态爱心

写在前面 本文主要是对某音爆火的html爱心代码做简单的解析&#xff0c;需要代码文末自取哦~ HTML入门 HTML&#xff08;Hypertext Markup Language&#xff09;是一种标记语言&#xff0c;用于创建网页。它由一系列的标签组成&#xff0c;这些标签可以告诉浏览器如何显示网…

先进工艺的DPT技术

“2.5GHz频率 hierarchy DVFS低功耗A72培训” 2.5GHz 12nm 景芯A72 upf DVFS 后端实战训练营&#xff01;随到随学&#xff01; 课程采用hierarchy/partition flow&#xff0c;先完成单核A72实战&#xff0c;然后完成A72 TOP实战&#xff01;训练营简介&#xff1a; Instance&a…

斯坦福抄袭清华、面壁智能大模型,当事人已道歉、删项目

6月4日&#xff0c;两名斯坦福大学生Aksh Garg和Siddharth Sharma&#xff0c;承认抄袭清华和面壁智能联合开发的MiniCPM-Llama3-V2.5&#xff08;以下简称V2.5&#xff09;多模态大模型事件&#xff0c;并在社交平台公开道歉、删掉开源项目。 该抄袭事件也得到了斯坦福大学AI…

【计算机毕业设计】302微信小程序的充电桩管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

「漏洞复现」用友NC pagesServlet SQL注入漏洞(XVE-2024-13067)

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…

LangChain Agent 最新教程详解及示例学习

LangChain Agent的终极指南&#xff0c;本教程是您使用 Python 创建第一个agent的重要指南&#xff0c;请立即开始你的 LLM 开发之旅。 一、什么是LangChain Agent&#xff08;代理&#xff09; LangChain中代理背后的想法是利用语言模型以及要执行的一系列操作。代理正在使用…

`THREE.BufferGeometry` 是 Three.js 中一个强大的类,用于表示几何体数据。

demo案例 THREE.BufferGeometry 是 Three.js 中一个强大的类&#xff0c;用于表示几何体数据。与传统的 THREE.Geometry 类相比&#xff0c;它使用缓冲区来存储顶点数据&#xff0c;从而在性能上有显著的提升。以下是 THREE.BufferGeometry 的详细说明&#xff0c;包括其输入参…

ARM服务器在云手机中可以提供哪些支持

ARM服务器作为云手机的底层支撑&#xff0c;在很多社媒APP或者电商APP平台都有着很多看不见的功劳&#xff0c;可以说ARM扮演着至关重要的底层支持角色&#xff1b; 首先&#xff0c;ARM 服务器为云手机提供了强大的计算能力基础。云手机需要处理大量的数据和复杂的运算&#x…

Sentinel不使用控制台基于注解限流,热点参数限流

目录 一、maven依赖 二、控制台 三、基于注解限流 四、热点参数限流 五、使用JMeter验证 一、maven依赖 需要注意&#xff0c;使用的版本需要和你的SpringBoot版本匹配&#xff01;&#xff01; Spring-Cloud直接添加如下依赖即可&#xff0c;baba已经帮你指定好版本了。…

沃尔玛、美客多跨境平台自养号全攻略:防关联环境系统搭建与养号技巧

在沃尔玛、美客多等跨境平台进行自养号的过程中&#xff0c;环境系统的选择和账号的养育是至关重要的。以下是我对这两个方面的经验和技巧的总结&#xff1a; 环境系统&#xff1a; 市面上有很多环境系统可供选择&#xff0c;但质量参差不齐。为了实现足够高的伪装度&#xff…

服务器数据恢复—raid5阵列上分配的卷被删除后重建如何恢复被删除卷的数据?

服务器存储数据恢复环境&#xff1a; 某品牌FlexStorage P5730服务器存储&#xff0c;存储中有一组由24块硬盘组建的RAID5阵列&#xff0c;包括1块热备硬盘。 服务器存储故障&#xff1a; 存储中的2个卷被删除&#xff0c;删除之后重建了一个新卷。需要恢复之前删除的一个卷的数…

高舒适性气膜网球馆的注意事项—轻空间

气膜网球馆以其高舒适性、智能恒温等特点&#xff0c;成为现代体育场馆的新宠。在国家提倡全民健身的背景下&#xff0c;各地气膜网球馆如雨后春笋般涌现。然而&#xff0c;在建设和使用气膜网球馆时&#xff0c;需要特别注意以下几点&#xff1a; 1. 避免随意拆装 气膜网球馆…

Three.js——tween动画、光线投射拾取、加载.obj/.mtl外部文件、使用相机控制器

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 ⚡开源项目&#xff1a; rich-vue3 &#xff08;基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL&#xff09; &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1…

[数据集][目标检测]剪刀石头布检测数据集VOC+YOLO格式1973张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1973 标注数量(xml文件个数)&#xff1a;1973 标注数量(txt文件个数)&#xff1a;1973 标注…

SpringBoot接口防抖(防重复提交)

SpringBoot接口防抖&#xff08;防重复提交&#xff09; 概念 Spring Boot接口防抖&#xff08;Debouncing&#xff09;的概念是指在处理请求时&#xff0c;通过一定的机制来防止用户频繁触发同一接口请求&#xff0c;以防止重复提交或频繁请求的情况发生。 在Web应用中&…

Jupyter Notebook 切换虚拟环境

具体流程&#xff1a; 1. 查看当前jupyter notebook的环境&#xff1a; 从上面可看出当前jupyter只有一个python 3的环境。 2、 在终端中切换至想要添加的环境&#xff1a; 2.1 激活你要添加的环境 conda activate sf 2.2 在当前环境中安装ipykernel conda install ipyke…

手把手教你【如何使用Vue3+Spring Boot实现一个视频点播功能】

一、简介 本项目是一个实际的视频点播应用&#xff0c;采用了Vue3和Spring Boot作为主要技术栈。旨在帮助开发者通过学习和参考实现思路来掌握相关知识。它主要解决了阿里云视频点播服务的接入、视频基础信息管理以及上传视频后获取视频ID等关键流程&#xff0c;涉及前后端交互…

【最新支持】OpenCV实验大师C++ SDK支持YOLOv10了推理了

学习《OpenCV应用开发&#xff1a;入门、进阶与工程化实践》一书 做真正的OpenCV开发者&#xff0c;从入门到入职&#xff0c;一步到位&#xff01; OpenCV实验大师C SDK YOLO系列模型推理SDK 支持 YOLOv5、YOLOv8、YOLOv10系列网络从推理与部署 基于OpenCV DNN 与OpenVINO实…

Echarts 在指定部分做文字标记

文章目录 需求分析1. demo12. demo22. demo3 定位解决需求 实现在Echarts的折线图中,相同Y值的两点之间显示’abc’ 分析 1. demo1 使用 ECharts 的 markLine 功能来在相邻两个点之间添加标记。其中,我们通过设置标记的 yAxis 和 label 来控制标记的位置和显示内容。最后…