让我们考虑我有一个具有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.Document
的Option
,也称为BSONDocument
,或者当使用Play JSON时,它希望JsObject
。
users.count(Some(Json.obj("age" -> age)))