【问题标题】:Scala, casbah aggregate queryScala,casbah 聚合查询
【发布时间】:2016-10-03 11:27:06
【问题描述】:

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

我有以下有效的 mongoDB 查询,

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

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

【问题讨论】:

    标签: mongodb scala aggregation-framework casbah mongodb-aggregation


    【解决方案1】:

    类似的东西:

    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))                            
    
    }
    

    应该可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 2013-12-06
      相关资源
      最近更新 更多