繁体   English   中英

Scala,Casbah聚合查询

[英]Scala, casbah aggregate query

我是MongoDB和Casbah的新手,我想知道是否有人可以帮助我。

我有以下有效的mongoDB查询,

db.getCollection('holidayRequests').aggregate
(
   [
     {  $match: {  $and: [ { email: "leeroy.jenkins@company.com" } , { status: "APPROVED" } ] }},
      {
          $group:
      {
           _id: {  email: "$email" },
           totalAmount: { $sum: "$daysTaken" }
      }
     }
   ]
);

我如何将其转换为casbah驱动程序可以理解的查询?

像这样:

import com.mongodb.casbah.commons.MongoDBObject
import com.mongodb.casbah.commons.MongoDBList
import com.mongodb.casbah.MongoClient

object testCasbah {

  val mongoClient = MongoClient() /* database connections parameters */
  val db = mongoClient("databaseName")

  val email  =  MongoDBObject("email" -> "leeroy.jenkins@company.com")
  val status =  MongoDBObject("status" ->  "APPROVED" )

  val and    = MongoDBObject("$and" -> List(email, status))

  val pipeline = MongoDBList(MongoDBObject("$match" -> and)) ++
                 MongoDBList(MongoDBObject("$group" -> 
                    MongoDBObject("_id" -> MongoDBObject("email" -> "$email"), 
                                  "totalAmount" ->  MongoDBObject("$sum" -> "$daysTaken"))))

  db.command(MongoDBObject("aggregate" -> "holidayRequests", "pipeline" -> pipeline))                            

}

应该管用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM