概述
MangoDB具有高性能、高存储、数据具有结构性的特点。
与Mysql相比,他的性能更高;与Redis相比,他的数据更有结构性
应用场景:数据量较大,要求加载数据快
环境配置
- 拉取镜像
sh
docker pull mango
- 创建容器
sh
docker run -di --name mongo-service --restart=always -p 27017:27017 -v /data/mongodata:/data mongo
- 导入依赖
xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
- 配置文件
yml
spring:
data:
mongodb:
host: 192.168.133.128
port: 27017
database: DatabaseName
- 创建映射
将实体映射到MangoDB的集合,类似将实体映射到Mysql的表
java
@Document("ap_associate_words")
public class ApAssociatewords implements Serializable{
private static final long serialVersionUID = 1L;
private String id;
/**
* 联想词
*/
private String associatewords;
/**
* 创建时间
*/
private Date createdTime;
}
- 示例代码
java
public class MangoDemo{
@Autowired
MangoTemplate mangoTemplate;
public void test(){
//保存或修改(根据ID,有ID就修改,无ID就保存)
mangoTemplate.save(apAssociatewords);
//根据ID查询集合得到实体
ApAssociatewords apAssociatewords = mongoTemplate.findById("5fc2fc3fb60c9a039c44556e",ApAssociatewords.class);
//根据条件去查询实体
Query query = Query.query(Criteria.where("associatewords").is("测试字段")).with(Sort.by(Sort.Direction.DESC,"createdTime"));
List<ApAssociatewords apAssociatewordsList = mongoTemplate.find(query, ApAssociateWords.class);
//根据条件删除文档
mongoTemplate.remove(Query.query(Criteria.where("associatewords").is("测试字段")),ApAssociateMords.class);
}
}