я использую Scala и Mongoldb-Casbah и я получаю некоторые данные:Mongoldb-Касба: получить первый матч в коллекции
val myData: Traversable[Imports.DBObject] = myCollection.find(query).toTraversable
Данные, возвращаемые представляют собой коллекцию, как это:
[ {_id: "...", цены: [ {myValue: "...", ...}, {myValue: "...", ...}, ... ] } , {... }, ... ]
Что мне нужно, это первый не пустой myValue
.
Я пробовал разные вещи, как:
myData.foldLeft(List[Any]()) { (acc, v) =>
acC++ v.get("prices").asInstanceOf[BasicDBList].filter(_.asInstanceOf[DBObject].getOrElse("myValue", "").toString.nonEmpty).take(1)
}
но не возвращает одно единственное значение, если я не сделать его еще более сложным. Я не пробовал findMap
или collectFirst
еще tho.
Любая идея, как извлечь один из myValue
с этими данными?