Использование ReactiveMongo, что бы канонический способ найти один документ с помощью запроса, удалить этот документ и, наконец возвращение его. Я также использую ReactiveMongo plugin для Playframework. До сих пор я придумал следующий фрагмент кода:Canonical реализация findAndDelete с использованием ReactiveMongo
def removeOne(query: JsObject)(implicit collection: JSONCollection): Future[Option[MyModel]] = {
collection.remove(query, firstMatchOnly = true).map(result => result match {
case success if result.ok => ???
case failure => throw new RuntimeException(failure.message)
})
}
Ключевой вопрос а) содержит ли LastError
единый документ и б) как он может быть преобразован в Option
из MyModel
класса.
ReactiveMongo предоставляет '.findAndRemove' и' .findAndUpdate' как операции сбора, начиная с 0.11 – cchantep