記錄使用mongodb分頁時遇到的坑

項目大部分數據存儲在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)
            );
        }
相關文章
相關標籤/搜索