flatMap
следует использовать для неблокирующих операций или, короче, для всего, что возвращает обратно Mono, Flux.
map
следует использовать, когда вы хотите выполнить преобразование объекта / данных в установленное время. Операции, которые выполняются синхронно.
Например:
return Mono.just(Person("name", "age:12"))
.map { person ->
EnhancedPerson(person, "id-set", "savedInDb")
}.flatMap { person ->
reactiveMongoDb.save(person)
}
then
следует использовать, если вы хотите игнорировать элемент из предыдущего Mono и хотите, чтобы поток был завершен