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