簡體   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