Пример агрегата Scala Play Salat

Я использую Scala Play 2.x с MongoDB в бэкэнде, и я должен признаться, что Salat имеет прекрасную поддержку для операций CRUD с Монго.

Но до сих пор я не нашел хорошего примера того, как я могу вызвать агрегатную функцию Монго, используя SALAT, например, $ unwind, $ match, $ group или агрегатный конвейер.

Например

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

ОБНОВЛЕНИЕ (АЛЬТЕРНАТИВНЫЙ) Я не нашел никакой помощи, которая систематически объясняет использование совокупного запроса в SALAT. Так что в качестве работы вокруг я также добавил Casbah, который имеет
поддержка AGGREGATE QUERIES в SBT и возможность открыть работу параллельно с SALAT.

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

заранее спасибо

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
  )
)
Другие вопросы по тегам