2014-07-08 3 views
2

나는 Reactivemongo 플러그인과 Reactivemongo를 함께 사용합니다. QueryOptsReactivemongo QueryOpts.batchSizeN not work

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, 나는 그것을 다시 항목의 10를 가지고 있지만 그것을하지 않을 생각했다.
마지막으로 cursor.collect[List]()cursor.collect[List](10)으로 변경하면 작동합니다. 제 질문은 mongodb 명령에 대한 batchSizeN 사용입니다 find().limit() 같은 방법으로 또는하지 않습니까?
QueryOpts.batchSizeNcursor.collect[List](10)의 차이점은 무엇입니까?

답변