MongoDB:数据库初步应用

一.连接MongoDB

1.MongoDBCompass连接数据库

连接路径:mongodb://用户名:密码@localhost:27017/

2.创建数据库(集合)

MongoDB中数据库被称为集合.

MongoDBCompass连接后,点击红色框加号创建集合,点击蓝色框加号创建文档(数据表)

文档中的数据结构(相当于表中的列)设计不用管,添加数据的时候,自动创建列和数据类型.

3.在集合中添加数据

可以将JSON文件添加到集合中.如果是多条数据结构应该如下,不然会提示格式错误

{ ... },{ ... },{ ... }

如果是多条数据,最外层应该是[ ] , 这个和从MySql导出来的数据有点点不一样,如果是从MySQL中导出的话,要把json文档打开,按照上面这个格式去掉头尾.

二. Spring Boot 连接MongoDB

1.pom添加引用

复制代码
<!--        添加mongodb引用-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>

2.yml添加连接配置

复制代码
spring:
  data:
    mongodb:
      uri: mongodb://用户名:密码@127.0.0.1:27017/fresh_mall?authSource=admin

上面的用户名和密码替换你自己的,如果不添加 ?authSource=admin 会提示权限错误.

三. Spring Boot 操作MongoDB

  1. 创建MongoDB对应的实体类

    @Getter
    @Setter
    @Document("user_address")
    @Schema(name = "UserAddress", description = "用户地址")
    public class UserAddress implements Serializable {
    private static final long serialVersionUID = 1L;
    @Schema(description = "主键")
    @Field("uuid")
    private String uuid;

    复制代码
     @Schema(description = "用户编号")
     @Field("userId")
     private String userId;

    }

上面代码中@Document注解对应MongoDB中的集合名称,@Field注解对应集合中的字段名,这样配置之后MongoDB会自动完成实体到数据的映射.

2.通过MongoTemplate进行数据操作

复制代码
@Resource
    private MongoTemplate mongoTemplate;    //mongoDB操作模板
    @Override
    public List<UserAddress> getAddressByUserId(String uid) {
        //创建查询对象
        Query query = new Query();
        //配置查询标准
        query.addCriteria(Criteria.where("userId").is(uid));
        List<UserAddress> list = mongoTemplate.find(query,UserAddress.class);
        return list;
    }

这个代码会自动查找user_address集合,因为实体类做了配置,并且在查找到内容之后,自动完成数据到对象的映射.

相关推荐
weixin_419658311 小时前
MySQL数据库备份与恢复
数据库·mysql
专注API从业者2 小时前
基于 Flink 的淘宝实时数据管道设计:商品详情流式处理与异构存储
大数据·前端·数据库·数据挖掘·flink
小猿姐3 小时前
KubeBlocks for Milvus 揭秘
数据库·云原生
AI 嗯啦3 小时前
SQL详细语法教程(四)约束和多表查询
数据库·人工智能·sql
杜子不疼.4 小时前
《Python学习之文件操作:从入门到精通》
数据库·python·学习
TDengine (老段)4 小时前
TDengine IDMP 高级功能(4. 元素引用)
大数据·数据库·人工智能·物联网·数据分析·时序数据库·tdengine
DashVector4 小时前
如何通过Java SDK分组检索Doc
java·数据库·面试
Olrookie5 小时前
XXL-JOB GLUE模式动态数据源实践:Spring AOP + MyBatis 解耦多库查询
java·数据库·spring boot
苏婳6665 小时前
【最新版】怎么下载mysqlclient并成功安装?
数据库·python·mysql
Tapdata7 小时前
《实时分析市场报告 2025》上线 | 从批处理到实时洞察,2025 年全球实时分析市场全景解读
数据库