Springboot集成MongoDB

目录

一、安装MongoDB

1、拉取镜像

2、创建挂载目录

3、启动镜像

4、 进入容器

5、创建用户

二、SpringBoot集成MongoDB

1、添加依赖

2、添加配置

3、创建实体类

4、创建Repository

5、创建Service


一、安装MongoDB

1、拉取镜像

docker pull mongo

2、创建挂载目录

mkdir -p /home/mongodb/data

3、启动镜像

docker run -it --name mongo -p 27017:27017 -v /home/mongodb/data:/data/db -d mongo

4、 进入容器

docker exec -it mongo mongo

5、创建用户

默认是不需要用户密码就可以访问。如果需要使用账号密码访问,就需要创建用户。

db.createUser({user: "admin", pwd: "admin", roles: [{role: "root", db: "admin" }]});
role作用
Read允许用户读取指定数据库
readWrite允许用户读写指定数据库
dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
root只在admin数据库中可用。超级账号,超级权限

二、SpringBoot集成MongoDB

1、添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

2、添加配置

spring:
  data:
    mongodb:
      host: 127.0.0.1
      database: 数据库名称
      port: 27017

3、创建实体类

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.time.LocalDateTime;

@Data
@Document(value = "goods")
public class Goods {

    @Id
    private Long id;

    @Indexed
    private Long merchantId;

    private String name;

    private String specifications;

    private Integer price;

    private Integer saleState;

    private Integer deleted;

    private LocalDateTime createTime;

    private LocalDateTime updateTime;

}

4、创建Repository

import org.springframework.data.mongodb.repository.MongoRepository;

public interface GoodsRepository extends MongoRepository<Goods, Long> {
}

5、创建Service

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;

@Service
public class GoodsService {
    private final GoodsRepository goodsRepository;

    private final MongoTemplate mongoTemplate;

    public GoodsService(GoodsRepository goodsRepository, MongoTemplate mongoTemplate) {
        this.goodsRepository = goodsRepository;
        this.mongoTemplate = mongoTemplate;
    }

    public Page<Goods> page(int page, int size) {
        return goodsRepository.findAll(PageRequest.of(page, size));
    }

    public void save(Goods goods) {
        goodsRepository.save(goods);
    }

    public void updatePrice(Long id, Integer price) {
        Query query = Query.query(Criteria.where("_id").is(id));
        Update update = new Update();
        update.set("price", price);
        mongoTemplate.updateFirst(query, update, Goods.class);
    }
}

继承MongoRepository提供了增删查改、分页查询等实现方法,高级语法的应用需通过注入MongoTemplate方式实现

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值