Я пишу приложение Play/Scala, используя Play 2.5.4 и ReactiveMongo. На основе this example, я получаю коллекцию, используяИдиоматический способ получения коллекции в ReactiveMongo
class SettingStore(val mongo:ReactiveMongoApi) {
def collection = mongo.db.collection[BSONCollection]("Settings")
// more code...
}
Однако db
теперь осуждается. Предупреждение об отказе рекомендуется использовать database
, но этот возвращает Future
, поэтому все операции должны отображаться. Так как операции ReactiveMongo также возвращают Future
с, это кажется излишним ... Каким образом можно получить сбор? (Или, я полностью отсутствует что-то и Future[Future[Future[A]]]
будущее?)
Вы должны использовать '.flatMap()' или 'для понимания' –
Спасибо. Но 'def coll2 = for (db <- mongo.database) yield db.collection [BSONCollection] (" GeoMaps ")' все еще дает 'Future [BSONCollection]' ... я делаю это неправильно? –
Да. Вы ругаетесь. Но я не понимаю проблемы. 'Future [BSONCollection]' вы можете '.map()' другому 'Future [T]'. В 'Action' вы можете использовать' .async() 'в результате' Future [Result] '. В показанном примере все результаты: 'Future [T]'/ –