MongoDB
viaを使用する Play 2.1 アプリがありますReactivemongo 0.8 plugin
。私のアプリでは、 モデルを使用せずにここで説明されているアプローチを使用します
たとえば、関数 getTypeAll で「タイプ」が getType パラメータに等しい mongodb からすべてのドキュメントを返すメソッドがあります。これは正常に機能し{"type": "computer"}
ます。
def getTypeAll(getType: String) = Action {
val validatedType = getType.replaceAll("-"," ")
val q = QueryBuilder().query(toType.writes(validatedType))
Async {
val f = collection.find[JsValue](q)
f.toList.map{
jsonp =>
Ok( Json.toJson(jsonp) )
}
}
}
toType は次のように記述されval toType = OWrites[String]{ s => Json.obj("type" -> s) }
、val コレクションは次のように定義されます。lazy val collection = db("mycollection")
問題は、「タイプ」が同じパラメーターに等しいドキュメントの数を取得するメソッドを記述できないことです。
def countTypeAll(getType: String) = Action {
}
{"typecount": 45} のような json として返します
見つけたすべての例を調べていましたが、成功しませんでした。私が欲しいのは次のようなものだと思いますval c = collection.find[JsValue](q).count()
しかし、それは言うエラーを出しますvalue size is not a member of reactivemongo.api.DefaultCollection
要素の値が指定された値と等しいすべてのドキュメントをカウントする方法を誰か教えてもらえますか?