spring data mongodb

一.maven中添加依賴

 

  1. spring整合MongoDB
<!-- spring整合MongoDB -->          <dependency>              <groupId>org.springframework.data</groupId>              <artifactId>spring-data-mongodb</artifactId>              <version>${spring.data.version}</version>          </dependency>

2.spring boot 整合mongodb

 

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

查詢

mongoTemplate基於 find 有很多方法,

1,先說,兩個基礎查詢類Query【查詢】和Criteria【條件】

Query 查詢---

其初始化,newQuery(Criteria),或者newQuery().add(Criteria);

可見,Query基本是和Criteria相互配合使用的,(查詢加條件);

如果單單是 new Query(),空的查詢,就是默認查詢所有了【不添加查詢條件】

Criteria crt = Criteria.where("isDel").is(false);

crt.and("type").is("shortStay");

 

OR = "$or":or條件
AND = "$and":and條件
GT = "$gt":大於操作
GTE = "$gte":大於等於操作
LT = "$lt":小於操作
LTE = "$lte"小於等於操作
NE = "$ne":不等於操作
IN = "$in":in操作

代碼如下:

public class ShortStayListInputVo{

.........

@ApiModelProperty(value="排序字段,字段寫法同mongodb")

private String sortField;

@ApiModelProperty(value="排序方向:1升序,-1降序")

private String sortDirection;

}

@Service("shortStayOrderServices")

public class ShortStayOrderServices{

public ResponseModel<OutputParams<List<ShortStayOrder>>> getOrderList(InputParams<ShortStayListInputVo>params){

ResponseModel<OutputParams<List<ShortStayOrder>>> rpm = new ResponseModel<>;

//查詢總數做判斷如果爲0直接返回數據未查到

long rows = shortStayOrderDao.countOrders(params);

if(rows==0){

rpm.setResponseStatus(ResponseStatus.DataNotFound);

return rpm;

}

}

}

public class ShortStayOrderDao{

    public List<ShortStayOrder> getOrderList(InputParams<ShortStayListInputVo> params){

Query query = new  Query();

query.addCriteria(this.condisAssemble(params.getQueryParam()));

query=this.orderCondiCombin(query,params);

return mongoTemplate.find(query,ShortStayOrder.class);

}

    public Query orderCondiCombin(Query query,InputParams<ShortStayListInputVo> params){

List<String> sortField = new ArrayList<String>();

org.springframework.data.domain.Sort.Direction direction = null;

//排序

sortField.add(params.getQueryParam().getSortField());

if("1".equals(params.getQueryParam().getSortField()))

direction = Direction.Asc;

}else if ("-1"){

direction = Direction.DESC;

}else{

direciton = Direction.DESC;

}

}else{

direction = Direction.DESC;

sortField.add("createTime");

}

query.with(new Sort(direction,sortField)).skip(params.getPageIndex()*params.getPageSize()).limit(params.getPageSize());

return query;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章