鬼泣 发表于 2015-12-22 14:39:59

ReactiveMongo Aggregation 聚合查询模型 -- MyEdu service ticket query

Aggregation 源代码

https://github.com/ReactiveMongo/ReactiveMongo/blob/master/driver/src/main/scala/core/commands/aggregation.scala

1)Get all records

       ticketDB.find(Json.obj("school_bucket" -> "1"))
         .cursor.collect().map((tickets: List) => Ok(Json.toJson(tickets)))

2)Get distinct field
    val distinct = RawCommand(
      BSONDocument("distinct" -> "tickets", "key" -> "school_number", "query" -> BSONDocument("school_bucket" -> "1")))

      // for distinct, but only return one distinct field
      for {
      result1First("id"),
            "ticket_number" -> First("ticket_number"),
            "school_number" -> First("school_number"),
            "school_bucket" -> First("school_bucket"),
            "school_name" -> First("school_name")
            ),
          Sort(List(Ascending("id"))),
          Match(BSONDocument("school_bucket" -> "1"))
      )
      )

      db.command(groupBy).map(
      s => {
          val result = s.toList.map(doc => toJSON(doc))
          Ok(Json.toJson(result))
      }
      )
页: [1]
查看完整版本: ReactiveMongo Aggregation 聚合查询模型 -- MyEdu service ticket query