2016-08-21 6 views
1

クエリからいくつかのドキュメント(offset)をスキップして、後に続くドキュメントの番号をlimitだけ返す必要があります。私は、次の単純なアプローチを知っている:reactivemongo mongodbドライバに `skip`(オフセット)を設定するにはどうしたらいいですか?

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

を私は「データベース」の側にそれらをフィルタリングしたい一方で、それは、JVMのメモリ内のドキュメントのoffset+limit数がロードされますので、それは本当に望まれていません。

答えて

4

解決策:QueryOptsを使用してください。例:

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

skipを使用してmongodbが効果的なページネーションをサポートしていないので、それだけですべてのドキュメントを反復処理することにより、所望の数をスキップします非常に効率的ではないということ。

関連する問題