2013-05-30 73 views
0

下面的查詢是從Java驅動程序結束在MongoDB中執行分頁的正確方法嗎?MongoDB查詢從Java驅動程序分頁

Criteria criteria = new Criteria("users").in(userID); 
Query query = new Query(criteria).skip(start).limit(count); 

在這個例子中,「start」和「count」是方法參數。這種方法是否有任何性能問題?如果是這樣,爲了在MongoDB查詢中解決分頁問題,​​查詢有哪些替代方法?

回答

1

使用跳過和限制是從數據庫獲取結果頁的常見模式。

就性能而言,假設它們位於不同的計算機上,訪問數據庫時應始終注意應用程序與數據庫服務器之間的網絡跳躍性能成本。在你的示例代碼的情況下,這應該只是通過網絡的單個調用,這很好。但是,請注意,如果您有非常大的值(count),則結果將分批返回(即需要多個網絡呼叫),第一批中的默認值爲101(請參閱:http://docs.mongodb.org/manual/core/read-operations/#cursor-behaviors)。

相關問題