在mongodb的查詢中固耘,我們經(jīng)常需要使用類似select * from tablename where f1 >= value1 and f1 <= value2這樣的查詢語句航徙。在mongodb的查詢語言中胖翰,如果要針對同一字段添加多個查詢條件积锅,不能簡單的使用類似:
Criteria criteria = Criteria.where("countValue").gte(10).and("countValue").lte(20);
這種方式在運行期會出現(xiàn)類似 countValue不能設(shè)置第二個查詢條件 的異常提示江耀。
實際這種針對同一字段的多個條件,需要采用以下方式構(gòu)造Criteria實例:
Criteria criteria = Criteria.where("rcdStatus").in("01", "03");
Query query = Query.query(criteria);
Criteria newCriteria = new Criteria();
newCriteria.andOperator(Criteria.where("alertTime").gte(qryCondVo.getStartTime()), Criteria.where("alertTime").lte(qryCondVo.getEndTime()));
query.addCriteria(newCriteria);
以上代碼會生成類似select * from tableName from rcdStatus in ('01', '03') and alertTime >= qryCondVo.getStartTime() and alertTime <= qryCondVo.getEndTime()的查詢語句擒权。