Мы используем Scala 2.11 и Reactivemon go 0.18, я пытаюсь удалить все пользовательские документы из всей коллекции следующим способом. Это упрощенная версия метода, взятая из Reactivemon go tutorial , и есть одно отличие: мы используем JSONCollection вместо BSONCollection:
private def deleteCollections(userId: String, collectionName: String): Future[Either[Exception, Unit]] = {
val deleteBuilderF = reactiveMongoDriver.db.map(_.collection[JSONCollection](collectionName)).map(_.delete(ordered = false))
val errorMessage = s"Error while deleting collection name=$collectionName"
deleteBuilderF.flatMap(deleteBuilder => {
val deletes = Future.sequence(Seq(
deleteBuilder.element(
q = idSelector(userId)
)))
deletes.flatMap(ops => deleteBuilder.many(ops))
})
.map(_ => Right(()))
}
, и это дает мне следующую ошибку компиляции:
[error] /projects/xxxxxxxxxxxxMongo.scala:62: type mismatch;
[error] found : Seq[_1.DeleteCommand.DeleteElement]
[error] required: Iterable[_2.DeleteCommand.DeleteElement] where val _2: reactivemongo.play.json.collection.JSONCollection
[error] deletes.flatMap(ops => deleteBuilder.many(ops))
Что означает эта ошибка компиляции и как ее исправить? Меня смущают заполнители _1
и _2
.