2016-08-21 57 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不支持有效分页,它只是通过所有的文件迭代跳过所需的号码。

相关问题