Docker下的Mongodb开发
mogodb介绍
MongoDB 是一个基于分布式文件存储的数据库。
很多人将mongodb与mysql对比,mongodb是非关系型数据库(nosql ),属于文档型数据库,适合一些大批量简单读作业的情况,对复杂sql不支持,最初应用最广泛的是日志系统的记录。
mysql:数据存储,关系型数据库。
mongodb:nosql,非关系型数据库。
redis:nosql
redis适用于用户频繁操作,需要承压的项目,最终数据会入库。
mongodb案例
springboot案例
- 依赖
- 配置
或者采用uri地址:
- 编码
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拥有许多功能,可以自行封装需要的功能。 - docker安装部署
下载镜像:
docker pull mongo
启动:
docker run -p 27017:27017 -v $PWD/db:/data/db --name mongodb -d mongo:latest
如下所示: - 测试:
1)插入
结果:
这里可以看见具体的操作指令: db.getCollection(‘tenantNotice’).find({})
2)查询
code源码:https://github.com/lovezmming/spring-development-projects/tree/master/shev-mongodb
微信公众号:像是风