play Reactivemongo プラグインと Reactivemongo を併用しています。
def list(ps: Int = pageSize, page: Int = 1, sortBy: String = "_id", order: Int = 1, filterKey: String = "", filter: String = "") = Action.async { implicit request =>
val builder = filterKey.length > 0 && filter.length > 0 match {
case true => collection.find(Json.obj(filterKey -> filter))
case false => collection.genericQueryBuilder
}
val cursor:Cursor[JsObject] = builder
.sort(Json.obj(sortBy -> order))
.options(QueryOpts(skipN = (page - 1) * ps, batchSizeN = 10)).cursor[JsObject]
val futurePersonsList = cursor.collect[List]()
val futurePersonsJsonArray = futurePersonsList.map { list =>
Json.arr(list)
}
futurePersonsJsonArray.map { list =>
//Logger.debug(list(0).)
Ok(list(0)).as(JSON)
}
}
のbatchSizeN
、QueryOpts
アイテムの 10 個が戻ってくると思っていましたが、そうではありませんでした。
最後にに変更cursor.collect[List]()
するとcursor.collect[List](10)
、動作します。私の質問は、batchSizeN が mongodb コマンドにfind().limit()
同じように使用するかどうかです。と
はどう違いますか?QueryOpts.batchSizeN
cursor.collect[List](10)