记录使用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)
            );
        }
相关文章
相关标签/搜索