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

相关推荐
未来龙皇小蓝2 分钟前
【MySQL-索引调优】05:索引相关概念
数据库·mysql·性能优化
码农阿豪10 分钟前
MySQL 动态分区管理:自动化与优化实践
数据库·mysql·自动化
givemeacar12 分钟前
redis 使用
数据库·redis·缓存
qiuyuyiyang13 分钟前
MySQL:drop、delete与truncate区别
数据库·mysql
cga194715 分钟前
MySQL:数据查询-limit
数据库·mysql
阿乐艾官15 分钟前
【HBase列式存储数据库】
android·数据库·hbase
2301_8154829327 分钟前
用Python实现自动化的Web测试(Selenium)
jvm·数据库·python
Nturmoils1 小时前
从「亡羊补牢」到「规则先行」:金仓数据库 SQL 防火墙实战解析
数据库·后端
星空露珠1 小时前
迷你世界UGC3.0脚本Wiki全局函数
开发语言·数据库·算法·游戏·lua
湛生1 小时前
NoSQL注入
数据库·安全·web安全·网络安全·nosql