0
我发现使用mongoOperations的查询中的skip()行为很有趣。春天的数据mongodb查询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时跳过()会显示集合中的第一个文档。 limit()默认为0,因为不缩短范围。
我在mongodb shell中检查并跳过(1)正在查看从第二个文档开始的文档。
有人知道如何解决这个问题吗?
你尝试调试代码?我怀疑你甚至不访问if子句。 'question.getCategory()==“”'为false(身份)。应该是'“”.equals(question.getCategory())' –
我发现了真正的问题。我使用angularJS,并通过一些神秘的方式,我的ng模型相互碰撞,并从2个输入绑定2个不同的模型,第一个值进入第二个范围,而不是第一个像它应该。 – Archer
看起来你在查询中缺少'sort'?没有使用特定的排序顺序,“skip”不会返回您的分页的可预测结果。 – Stennie