項目大部分數據存儲在mongoDB中,在需求中,須要根據數據建立的時間段做爲條件進行查詢; 所以寫了個查詢條件以下:mongodb
if (null != startTime) { criteria.and("createTime").gte(startTime); } if (null != endTime) { criteria.and("createTime").lte(endTime); }
而後測試,傳入參數查詢,報錯:express
{"timestamp":"2018-12-28T10:58:43.199+0000","status":500,"error":"Internal Server Error","message":"Due to limitations of the com.mongodb.BasicDocument, you can't add a second 'createTime' expression specified as 'createTime ;測試
看代碼,調試了好久沒找到緣由,後來百度才知道這種在mongo裏的正確寫法:調試
if (null != startTime && null == endTime) { criteria.andOperator( Criteria.where("createTime").gte(startTime) ); }else if (null == startTime && null != endTime) { criteria.andOperator( Criteria.where("createTime").lte(endTime) ); }else if ( null != endTime && null != startTime){ if(endTime.equals(startTime)) { endTime = DateUtils.getEndDate(endTime); } criteria.andOperator( Criteria.where("createTime").gte(startTime), Criteria.where("createTime").lte(endTime) ); }