我在后端使用Scala Play 2.x和MongoDB,我必须承认Salat对mongo CRUD操作有很好的支持。
但到目前为止,我没有找到任何关于如何使用SALAT调用mongo聚合函数的好例子,如$ unwind,$ match,$ group或aggregate pipeline。
例如
db.posts.aggregate([
{
$unwind :"$tag"
},
{ $group :
{
_id :"$tags",
count : {$sum :1}
}
},
{
$sort : {$post :-1}
},
{
$limit :1
}
])
更新(替代)我没有找到任何系统解释用法的帮助 SALAT中的聚合查询。因此,作为一项解决方法,我还添加了 casbah 支持SBT中的AGGREGATE QUERIES,并能够与SALAT并行开展工作。
val appDependencies = Seq(
"se.radley" %% "play-plugins-salat" % "1.3.0",
"org.mongodb" %% "casbah" % "2.6.3"
)
提前致谢
答案 0 :(得分: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
)
)