MongoDB快速入门

MongoDB是什么

MondoDB是最流行的文档型数据库

MongoDB一些基本概念

  • databases
    数据库,类似于MySQL的数据库
  • collections
    集合,类似于MySQL的表,一个databases可以创建多个collections
  • documents
    文档,类似于MySQL的行数据,一个collections可以创建多个documents

MongoDB文档常见的数据类型

  • 数值
    • int
    • long
    • double
    • decimal
  • 布尔
    • bool
  • 字符串
    • string
  • 日期
    • date
  • 时间戳
    • timestamp
  • 数组
    • array
  • 二进制数据
    • binData
  • 文档标识
    • objectId
  • 嵌套文档
    • object

MondoDB的下载、安装、运行

  • Docker拉取MongoDB镜像
docker pull mongodb/mongodb-community-server:latest
  • 启动mongoDB容器
docker run --name mongodb -p 27017:27017 -d mongodb/mongodb-community-server:latest

其中 -p 是将容器端口映射到主机端口,而27017是mongoDB客户端与MongoDB服务端的默认通信端口

  • 校验MongoDB容器是否启动成功
docker ps

出现以下结果,则说明MongoDB容器启动完成了
在这里插入图片描述

Studio 3T(MongoDB客户端)的下载、安装、运行

  • 进入Studio 3T官网
    Studio 3T官网

  • 下载 Studio 3T
    在这里插入图片描述
    在这里插入图片描述

  • 解压后双击安装

  • 完成以下四个步骤
    在这里插入图片描述

  • 连接MongoDB
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Studio 3T操作MongoDB

  • 创建数据库

    • 选择连接
      在这里插入图片描述
    • 点击Add database
    • 输入数据库名
      在这里插入图片描述
  • 创建集合

    • 选择数据库
      在这里插入图片描述

    • 点击Add Collection

    • 输入集合名
      在这里插入图片描述

  • 打开shell操作文档数据
    在这里插入图片描述

  • 添加一条数据

命令:db.{collection}.insertOne(document, { writeConcern? }?)
例子:db.hello_c.insertOne({name:"小林",age:18,gender:"男"})
  • 添加多条数据
命令:db.{collection}.insertMany(documents, { writeConcern?, ordered? }?)
例子:db.hello_c.insertMany([{name:"小北",age:19,gender:"男"},{name:"小红",age:18,gender:"女"},{name:"小七",age:17,gender:"男"}])
  • 修改数据
命令:db.{collection}.updateOne(filter, update, options?)
例子:db.hello_c.updateOne({name:"小林"},{$set:{name:"小天",age:20}})
  • 删除数据
命令:db.{collection}.deleteMany(filter, { writeConcern?, collation? }? )
例子:db.hello_c.deleteMany({gender:"男"})
  • 查询数据
命令:db.{collection}.find(criteria?, projection?)
例子:db.hello_c.find({name:"小林"});

Spring Boot整合MongoDB

  • 初始化一个Spring Boot项目

我这里Spring Boot版本是2.3.6.RELEASE
在这里插入图片描述

  • 引入maven依赖
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
  • 配置mongoDB连接信息
spring:
    data:
        mongodb:
            host: your ip
            port: 27017
            database: hello_db
  • 编写User集合类
@Data
public class User {
    private String id;
    private String username;
    private int age;
    private String gender;
}
  • 在启动测试类编写测试代码

    @Autowired
    private MongoTemplate mongoTemplate;

    @Test
    void contextLoads() {
        // 添加一条数据
        User u1 = new User();
        u1.setUsername("小北");
        u1.setAge(18);
        u1.setGender("男");
        mongoTemplate.insert(u1, "user");
        System.out.println("添加一条数据成功");
        // 添加多条数据
        User u2 = new User();
        u2.setUsername("小黄");
        u2.setAge(19);
        u2.setGender("女");
        User u3 = new User();
        u3.setUsername("小小倩");
        u3.setAge(20);
        u3.setGender("女");
        List<User> users = new ArrayList<>();
        users.add(u2);
        users.add(u3);
        mongoTemplate.insert(users, "user");
        System.out.println("添加多条数据成功");
        // 查询数据
        List<User> oldUsers = mongoTemplate.find(Query.query(Criteria.where("username").is("小小倩")), User.class, "user");
        System.out.println("查询数据成功:" + oldUsers);
        // 修改数据
        AggregationUpdate update = AggregationUpdate.update().set("age").toValue(19).set("gender").toValue("女");
        mongoTemplate.updateFirst(Query.query(Criteria.where("username").is("小北")), update, "user");
        System.out.println("修改数据成功");
        // 删除数据
        mongoTemplate.remove(Query.query(Criteria.where("username").is("小黄")), "user");
        System.out.println("删除数据成功");
    }
  • 测试结果
    在这里插入图片描述
    在这里插入图片描述

以上就是MongoDB快速入门教程,下一篇章我们将深入学习MongoDB,敬请期待吧!

参考来源

  • 46
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值