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]