Пример агрегата 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
)
)