JAVA中mongodb的简单使用
1.导入依赖
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<scope>provided</scope>
</dependency>
2.配置文件
spring:
# mongodb
data:
mongodb:
port: 27017
username: xxx
password: xxxxxx
authentication-database: admin
host: xxx
database: xxx
3.对应实体类(注释@Document)
@Document
@Data
@Accessors(chain = true)
public class ResourcesCatalog implements Serializable {
@Id
@ApiModelProperty(value = "目录id")
private String catalogId;
@ApiModelProperty(value = "资源目录名称")
private String catalogName;
@ApiModelProperty(value = "资源目录英文名称")
private String catalogEnglishName;
@ApiModelProperty(value = "资源摘要")
private String catalogAbstract;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
}
4.工具类
@Resource
private MongoTemplate mongoTemplate;
工具类对应方法
常用方法
mongoTemplate.findOne(query, ResourcesCatalog.class); 查询符合条件的ResourcesCatalog文档数据
mongoTemplate.findAll(ResourcesCatalog.class): 查询ResourcesCatalog文档的全部数据
mongoTemplate.findById(<id>, ResourcesCatalog.class): 查询ResourcesCatalog文档id为id的数据
mongoTemplate.find(query, ResourcesCatalog.class);: 根据query内的查询条件查询
mongoTemplate.upsert(query, update, ResourcesCatalog.class): 修改
mongoTemplate.remove(query, ResourcesCatalog.class): 删除
mongoTemplate.insert(resourcesCatalog): 新增
Query
1 创建一个query对象(用来封装所有条件对象),再创建一个criteria对象(用来构建条件)
2 精准条件:criteria.and(“key”).is(“条件”)
模糊条件:criteria.and(“key”).regex(“条件”)
3、封装条件:query.addCriteria(criteria)
4、大于(创建新的criteria):Criteria gt = Criteria.where(“key”).gt(“条件”)
小于(创建新的criteria):Criteria lt = Criteria.where(“key”).lt(“条件”)
5、Query.addCriteria(new Criteria().andOperator(gt,lt));
6、一个query中只能有一个andOperator()。其参数也可以是Criteria数组。
7、排序 :query.with(new Sort(Sort.Direction.ASC, “age”). and(new Sort(Sort.Direction.DESC, “date”)))
举例
Query query = new Query(Criteria.where("applicationCode").is(null));
query.addCriteria(Criteria.where("deptOrg").is(deptCode));
query.with(pageable);
使用
int count = (int) mongoTemplate.count(query, ResourcesCatalog.class);
List<ResourcesCatalog> catalogList = mongoTemplate.find(query, ResourcesCatalog.class);
Page<UpdateSystemDirDTO> page = PageableExecutionUtils.getPage(dtoList, pageable, () -> count);
5.MongoRepository的使用
定义
public interface CatalogRepository extends MongoRepository<ResourcesCatalog, String> {
}
注入
@Resource
private CatalogRepository catalogRepository;
使用
//更新目录
catalogRepository.save(one);