我使用的是弹簧反应式,需要检查天气用户的具体情况 数据是否存在,目前我无法解决该问题。
考虑场景
在我的文档中,我需要检查用户名或电子邮件是否已经存在
在RDBS中,我可以这样做
select count(id)>0 where username='abc' or email='abc@idx.com'
在使用spring react时,它返回单声道或通量,最简单的查询变为
{$or:[{"username":"abc"},{"email":"abc@idx.com"}]}
会返回flux
,但我需要布尔值才能从数据库进行验证
关于解决方案是我可以得到Flux<User>
并使用form循环对其进行迭代,但是使用'result.block()'鞭打会阻塞其他一些线程,因此不是一个干净的解决方案。
是否有任何干净的解决方案或任何解决方案的想法。
谢谢
编辑一种可能的解决方案是在我现在正在使用的monogdb中创建唯一索引。但是,如果还有其他解决方案,请告诉我
答案 0 :(得分:0)
使用Spring Data MongoDB,您可以使用以下内容:
public interface ReactiveUserRepository extends ReactiveSortingRepository<User, Long> {
Mono<User> findByUsernameAndEmail(String username, String email);
}
为给定条件找到一个实体。对于非唯一结果,它会完成IncorrectResultSizeDataAccessException。
您可以在此处参考完整的语法:
https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/