2016-05-19 12 views
0

Betrachten wir, ich habe eine Sammlung users, die das age Attribut haben. Jetzt möchte ich entweder alle Dokumente in der Sammlung users zählen oder nur diejenigen, die dem Attribut age entsprechen. So habe ich die folgenden:Wie zähle ich Dokumente mit einer Abfrage in ReactiveMongo mit der JSON-Bibliothek von Play?

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

Das Problem ist, dass users.count(Json.obj("age" -> age)) einen Compiler-Fehler führt, weil die Methode count durch reaktive Mongo bereitgestellt Option[pack.Document] die Art erwartet. Irgendeine Idee, wie ich das beheben kann?

Ich verwende Reactive Mongo Version 0.11.11, wenn das wichtig ist.

Antwort

3

Wie gesagt, ist es ein Option von pack.Document erwartet, auch bekannt als BSONDocument wenn pack die eine Serialisierung BSON ist, oder wenn JsObjectusing Play JSON.

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

Danke, ich kann nicht glauben, dass ich das vermisst habe. –