我尝试使用ReactiveMongo(0.12)编写一个聚合MongoDB数据的函数,使用Play JSON序列化(类似于this question)。
所以这就是我所拥有的:
def getPopAggregate(col: JSONCollection) = {
import col.BatchCommands.AggregationFramework.{AggregationResult, Group, Match, SumField}
col.aggregate(
Group(JsString("$rstId"))("totalPopulation" -> SumField("population")),
List(Match(Json.obj("totalPopulation" -> Json.obj("$gte" -> 1000))))
).map(_.firstBatch)
}
这会输出Future[List[JsObject]]
,但我想将结果映射到我的案例类List
(即Future[Seq[PopAggregate]]
)。
case class PopAggregate(rstId: Option[BSONObjectID], totalPopulation: Double)
object PopAggregate {
implicit val popAggregateFormat = Json.format[PopAggregate]
}
我希望有人可以花些时间来帮助我度过这一次。非常感谢!