如何使用 Play 的 JSON 库在 ReactiveMongo 中计算带有查询的文档?

How to count documents with query in ReactiveMongo with Play's JSON library?

假设我有一个集合 users,它具有 age 属性。现在我想计算集合 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 序列化时,它期望 Optionpack.Document,也就是 BSONDocument,或者 JsObjectusing Play JSON.

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