lila/modules/db/src/main/api/count.scala

28 lines
748 B
Scala

package lila.db
package api
import Types._
import play.api.libs.json._
import reactivemongo.core.commands.Count
import play.modules.reactivemongo.Implicits._
import play.api.libs.concurrent.Execution.Implicits._
object $count {
def apply[A: InColl](q: JsObject): Fu[Int] =
implicitly[InColl[A]].coll |> { coll
coll.db command Count(coll.name, JsObjectWriter.write(q).some)
}
def apply[A: InColl]: Fu[Int] =
implicitly[InColl[A]].coll |> { coll
coll.db command Count(coll.name, none)
}
def exists[A : InColl](q: JsObject): Fu[Boolean] = apply(q) map (0 !=)
def exists[ID: Writes, A: InColl](id: ID): Fu[Boolean] = exists($select(id))
def exists[A: InColl](id: String): Fu[Boolean] = exists(id)
}