Spring数据mongodb查询skip()不起作用。

时间:2014-01-12 13:40:32

标签: java spring mongodb spring-mvc spring-data

我发现使用mongoOperations的查询中的skip()很有趣。

我有这段代码:

if (question.getCategory() == "" && question.getDifficulty() == 0 && question.getNumberOfCorrectAnswers() == 0) 
        return mongoOperations.find(new Query(Criteria.where("question").regex(questionPattern, "i"))
        .limit(getLimit()).skip(getSkip()), Question.class);

我在搜索方法中使用它。我想做一个分页。例如,将结果限制为10并跳过前5个。

limit()工作正常,但是当它获得值1时,skip()显示集合中的第一个文档。 limit()默认为0,不缩短范围。

我检查了mongodb shell并跳过(1)从第二个开始查看文档。

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

Criteria criteria = Criteria.where("question").regex(questionPattern, "i");
Query query = Query.query(criteria);
query.limit(getLimit());
query.skip(getSkip());
return mongoOperations.find(query, Question.class);