2

我在后端使用 Scala Play 2.x 和 MongoDB,我必须承认 Salat 对 mongo CRUD 操作有很好的支持。

但到目前为止,我还没有找到任何很好的例子来说明如何使用 SALAT 调用 mongo 聚合函数,如 $unwind、$match、$group 或聚合管道。

例如

db.posts.aggregate([
 {
   $unwind :"$tag"
 },
 { $group :
          {
             _id :"$tags",
              count : {$sum :1}
          }
}, 
{
   $sort : {$post :-1}    
 },
{
   $limit :1
 }
])

更新(替代) 我没有找到任何帮助系统地解释 SALAT 中聚合查询的用法。因此,作为一种解决方法,我还添加了casbah,它
支持 SBT 中的聚合查询,并且能够与 SALAT 并行打开工作。

val appDependencies = Seq(
"se.radley" %% "play-plugins-salat" % "1.3.0",
"org.mongodb" %% "casbah" % "2.6.3"
 )

提前致谢

4

1 回答 1

1

我的萨拉特版本:

libraryDependencies ++= Seq(
  "se.radley" %% "play-plugins-salat" % "1.4.0"
)

代码示例:

dao.collection.aggregate(
  MongoDBObject(
    "$unwind" -> "$tag"
  ),
  MongoDBObject(
    "$group" -> MongoDBObject(
      "_id" -> "$tags",
      "count" -> MongoDBObject("$sum" -> 1)
    )
  ),
  MongoDBObject(
    "$sort" -> MongoDBObject(
      "$post" -> -1
    )
  ),
  MongoDBObject(
    "$limit" -> 1
  )
)
于 2014-07-04T15:08:35.680 回答