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

相关推荐
小小程序员.¥8 分钟前
oracle--plsql块、存储过程、存储函数
数据库·sql·oracle
fire-flyer10 分钟前
ClickHouse系列(四):压缩不是为了省磁盘,而是为了更快的查询
数据库·clickhouse
刘~浪地球16 分钟前
Redis 从入门到精通(十四):内存管理与淘汰策略
数据库·redis·缓存
海边的Kurisu18 分钟前
MySQL | 从SQL到数据的完整路径
数据库·mysql·架构
hINs IONN36 分钟前
maven导入spring框架
数据库·spring·maven
CV艺术家37 分钟前
mysql数据迁移到达梦数据库
java·数据库
枫叶林FYL41 分钟前
【自然语言处理 NLP】工具学习与Agent架构:从函数调用到多智能体协作
数据库
不愿透露姓名的大鹏1 小时前
Oracle Undo空间爆满急救指南(含在线切换+更优方案+避坑指南)
linux·运维·数据库·oracle
做个文艺程序员1 小时前
MySQL 主从延迟根因诊断法
数据库·mysql
清风6666661 小时前
基于单片机的自动存包柜设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业