使用ReactiveMongo JSON映射聚合结果

时间:2017-09-24 18:39:40

标签: mongodb scala reactivemongo

我尝试使用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]
   }

我希望有人可以花些时间来帮助我度过这一次。非常感谢!

0 个答案:

没有答案