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

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);
    }

}

获取的实体数据。

在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值