2016-08-21 50 views
1

我需要從查詢中跳過一些文檔(offset),並且只返回limit之後的文檔數。我知道下面的簡單方法:如何爲響應mongodb驅動程序設置`skip`(偏移量)?

collection.find(BSONDocument()) 
    .cursor[T].collect[List](offset+limit).map(_.drop(offset)) 

,但它並不是真正需要的,因爲它會加載offset+limit號的JVM內存文件,而我想它們進行過濾在「數據庫」的一面。

回答

4

解決方案:使用QueryOpts。例如:

collection.find(BSONDocument()) 
    .options(QueryOpts(skipN = offset)) 
    .cursor[T].collect[List](limit) 

注意,使用skip是不是很有效,因爲mongodb不支持有效分頁,它只是通過所有的文件迭代跳過所需的號碼。