2016-04-13 8 views
2

Ich bin neu in Scala und MongDB und ich möchte Datensätze aus einer Sammlung erhalten, die eine bestimmte ID (In C# oder Java ist es ziemlich einfach zu tun). Aber in Mongo + Scala kann ich es nicht zur Arbeit bringen. Meine Funktion ist:Scala Empfangsliste [String] von Controller

getBooksFlow(bookId: String, booknodes:List[String]): Future[List[bookResponseModel]] 
= { 
    val mainDB = connection.db(bookId) 
    val bookscollection = mainDB.collection[JSONCollection](booksCollectionString)  
    val query = Json.obj("_id" -> Json.obj("$in"->Json.toJson(booknodes))) 
    var futurebooks = bookscollection.find(query).cursor[bookResponseModel]().collect[List]() 
} 

Dies ist, wie die Abfrage, wenn sie gedruckt aussieht:

{"_id":{"$in":["0a416b7d-c3a8-329b-93b9-a7296e2d58d9,817e8aa6-7c60-36a3-9213-9bfcf954e541"]}} 

Aber ich mag es so sein:

{"_id":{"$in":["0a416b7d-c3a8-329b-93b9-a7296e2d58d9","817e8aa6-7c60-36a3-9213-9bfcf954e541"]}} 

Wer weiß, wie man dieses Recht?

Antwort

0

Es scheint Ihre booknodes:List[String] eine Liste der Zeichenfolge ist nur ein Objekt vorkommt:

List("0a416b7d-c3a8-329b-93b9-a7296e2d58d9,817e8aa6-7c60-36a3-9213-9bfcf954e541") 

Vielleicht, spaltete booknodes an dem Komma eine Liste dieses Objekt-IDs zu erhalten. So könnte Ihre Abfrage wie folgt aussehen:

Json.obj("_id" -> Json.obj("$in"->Json.toJson(booknodes.flatMap(_.split(","))))) 
+0

Robert Udah seine Feinwerk Aber wenn meine Daten (,), die die Situation nicht, was meine Frage war, warum Controller die Daten, wie die Liste receving ("0a416b7d-c3a8- 329b-93b9-a7296e2d58d9,817e8aa6-7c60-36a3-9213-9bfcf954e541 ") – kittu

+0

Was auch immer' getBooksFlow() 'nennt, gibt Ihnen einen Hinweis darauf, warum Ihre' booknodes' Liste eine Zeichenfolge mit Kommata hat. Würde es Ihnen etwas ausmachen, das Code-Bit zu posten, wo der Wert von 'booknodes' zugewiesen ist? –

+0

Robert Udah window.location = "/[email protected]&booknodes =" + bücher iam ruft die Steuerungsmethode von der ui-Seite direkt an (ich dachte, es ist der Fehler) Alternative, die Formular durchläuft, aber ich rief Fenster an. Standort – kittu