Вы почти никогда не должны подписываться в своем собственном приложении.
Абонент - это клиент, который инициировал вызов, в данном случае это, вероятно, веб-приложение. Ваше приложение просто передает данные, поэтому ваше приложение является издателем, что означает, что вы не должны подписываться. Веб-приложение подписывается.
Попробуйте это.
@Autowired
ReactiveMongoTemplate mongoTemplate;
public Mono<String> updateUser(UserIn userIn) {
return mongoTemplate.findAndModify(query, update, User.class)
.flatMap(user -> {
final UserResponse resp = new UserResponse();
if(user.getItemId().equals(userIn.getId("_id")))
resp.setStatus("Updated");
else
resp.setStatus("Failed");
return Mono.just(resp.getStatus());
});
}
Моно не похоже на поток, вы выбираете, отображаете и возвращаете, все в одном моно, как цепочка событий. Цепочка событий.