如何使用Play的JSON库在ReactiveMongo中对带有查询的文档进行计数?



让我们考虑我有一个具有age属性的集合users。现在,我想计算集合users中的所有文档,或者只计算与age属性匹配的文档。因此,我做了以下操作:

  def count(age: Option[Int] = None) = {
    if (age.isEmpty) roles.count()
    else users.count(Json.obj("age" -> age))
  }

问题是users.count(Json.obj("age" -> age))抛出编译错误,因为reactive mongo提供的方法count需要类型Option[pack.Document]。知道我该怎么解决吗?

如果这很重要的话,我使用的是Reactive Mongo版本0.11.11。

如前所述,当pack是BSON序列化时,它期望pack.DocumentOption,也称为BSONDocument,或者当使用Play JSON时,它希望JsObject

users.count(Some(Json.obj("age" -> age)))

最新更新