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集合,因为实体类做了配置,并且在查找到内容之后,自动完成数据到对象的映射.

相关推荐
爱吃烤鸡翅的酸菜鱼33 分钟前
从数据库直连到缓存预热:城市列表查询的性能优化全流程
java·数据库·后端·spring·个人开发
dualven_in_csdn1 小时前
ubuntu离线安装 xl2tpd
linux·数据库·ubuntu
初听于你3 小时前
高频面试题解析:算法到数据库全攻略
数据库·算法
BTU_YC9 小时前
Neo4j查询计划完全指南:读懂数据库的“执行蓝图“
数据库·neo4j
非极限码农9 小时前
Neo4j图数据库上手指南
大数据·数据库·数据分析·neo4j
mit6.8249 小时前
[C# starter-kit] 命令/查询职责分离CQRS | MediatR |
java·数据库·c#
苏打水com10 小时前
数据库进阶实战:从性能优化到分布式架构的核心突破
数据库·后端
shan~~11 小时前
linux达梦数据库操作
linux·数据库·chrome
武文斌7711 小时前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习