1

クエリに Count を実装しようとしていますが、BSONDocument ではなく JsObject オブジェクトを使用しているため、問題が発生しています。

https://github.com/ReactiveMongo/ReactiveMongo/blob/master/driver/samples/SimpleUseCasesSample.scala

JsObject を BSONDocument に変換する必要がありますか、それとももっと良い方法がありますか? ReactiveMongo 0.9 でこれをどのように行いますか?

4

1 に答える 1

2

翻訳例:

サービス:

  def countSentMailForVenue(currentId: Long, from: DateTime, to: DateTime) : Future[Int] = {
    val query = Json.obj("venueInfo.currentId" -> venueId, "origin" -> Origin.EMAIL_INVITE, "updated" -> Json.obj("$gte" -> from.getMillis, "$lt" -> to.getMillis))
    count(BSONFormats.toBSON(query).get.asInstanceOf[BSONDocument])
  }

そしてダオでは:

/**
   * Currently Count() only supports BSONDocument.
   */
  def count(query: BSONDocument) : Future[Int] = {
    Logger.debug(s"Counting documents: "+BSONFormats.toJSON(query))
    val futureCount = collection.db.command(
      Count(
        collection.name,
        Some(query)
      )
    )
    futureCount
  }
于 2013-08-29T11:33:09.090 に答える