docker下的mongodb

Docker下的Mongodb开发

mogodb介绍

MongoDB 是一个基于分布式文件存储的数据库。

很多人将mongodb与mysql对比,mongodb是非关系型数据库(nosql ),属于文档型数据库,适合一些大批量简单读作业的情况,对复杂sql不支持,最初应用最广泛的是日志系统的记录。
mysql:数据存储,关系型数据库。
mongodb:nosql,非关系型数据库。
redis:nosql
redis适用于用户频繁操作,需要承压的项目,最终数据会入库。

mongodb案例

springboot案例

  1. 依赖
    org.springframework.bootspring-boot-starter-data-mongodb
  2. 配置
    在这里插入图片描述
    或者采用uri地址:
    在这里插入图片描述
  3. 编码
    1)创建一个实体对象
    在这里插入图片描述
    @Data是lombok注解,包含getter与setter方法
    @Document声明为mongodb的数据实体
    2)实现方式
    注解:
    @Autowired
    private MongoTemplate mongoTemplate;
    接口:
    @PostMapping("/save")
    public String save(@RequestBody String json)
    {
    Date date = new Date();
    TenantNotice tenantNotice = new TenantNotice();
    String id = “xxxx”;
    tenantNotice.setId(id);
    tenantNotice.setContent(json);
    tenantNotice.setTenantId(“000001”);
    tenantNotice.setTitle(json);
    tenantNotice.setCreateTime(date);
    tenantNotice.setUpdateTime(date);
    mongoTemplate.insert(tenantNotice);
    return tenantNotice.getId();
    }
    @GetMapping("/get")
    public TenantNotice get(String id)
    {
    Query query = Query.query(Criteria.where("_id").is(id));
    List tenantNotice = mongoTemplate.find(query, TenantNotice.class);
    return tenantNotice.get(0);
    }
    @PostMapping("/del")
    public void del(String id)
    {
    Query query = Query.query(Criteria.where("_id").is(id));
    mongoTemplate.findAndRemove(query, TenantNotice.class);
    }
    该接口template拥有许多功能,可以自行封装需要的功能。
  4. docker安装部署
    下载镜像:
    docker pull mongo
    启动:
    docker run -p 27017:27017 -v $PWD/db:/data/db --name mongodb -d mongo:latest
    如下所示:在这里插入图片描述
  5. 测试:
    1)插入 在这里插入图片描述
    结果:
    这里可以看见具体的操作指令: db.getCollection(‘tenantNotice’).find({})在这里插入图片描述
    2)查询
    在这里插入图片描述

code源码:https://github.com/lovezmming/spring-development-projects/tree/master/shev-mongodb
微信公众号:像是风
在这里插入图片描述

发布了10 篇原创文章 · 获赞 8 · 访问量 866

猜你喜欢

转载自blog.csdn.net/zmzmlla/article/details/103121504