BSONArray에서 JSON 텍스트를 가장 빨리 보내는 방법은 무엇입니까?ReactiveMongo Play Framework의 JSON
매우 큰 JSON 문서를 반환합니다. 그것은 지금이 같은 반환하고있어 처리를 Play
JsValue
를 생략 할 수 있습니다 : 내가 생각
val result:BSONArray = ....
Ok(Json.toJson(result))
를 빠르게 볼 수있는 작품 같은 :
Ok(result.toTextJSON).as(MimeTypes.JSON)
여기에 업데이트 내 전체 코드 :
val command = Json.parse(s""" {
"aggregate": "$collection",
"pipeline": [
{ "$$match": { "$$and" : [
{ "${RootAttrs.TIME}" : { "$$gt": $startSecTime }},
{ "${RootAttrs.TIME}" : { "$$lt": $endSecTime }},
{ "${RootAttrs.COMMAND}" : { "$$eq": ${toCmd(Command.GPS_COORDINATES)} }}
]
}},
{ "$$sort": { "${RootAttrs.TIME}" : 1 }},
{ "$$limit": $MAX_GPS_ALL_DATA },
{ "$$project" : { "_id":0, "${RootAttrs.TIME}":1, "${RootAttrs.COMMAND}":1, "${RootAttrs.VALUE}":1, "${RootAttrs.IGNITION}":1, "${RootAttrs.SIM_NUMBER}":1 } }
]}""")
db.command(RawCommand(BSONDocumentFormat.reads(command).get)).map { out =>
out.get("result").map {
case result: BSONArray =>
Logger.debug("Loaded all GPS history data size: " + result.length)
Ok(Json.toJson(result)) // <- I need just return JSON, parsing to JsValue can take some time
case _ =>
Logger.error("Result GPS history data not array")
BadRequest
}.getOrElse(BadRequest)
}
당신이 여기보다 포괄적 인 코드 예제를 추가시겠습니까? – marcospereira