数据和一个存储库.例如:
@Query("{ 'userName' : ?0 }") public User findByUsername(String username);
我想让这个案例不敏感.我使用了以下查询:
"{'userName' : { $regex : ?0, $options: 'i' } }"
这有效,但它不仅匹配testUser,还匹配estUser.
我也试过了
"{'userName' : { $regex : ^?0$, $options: 'i' } }"
但是这不能解析查询,因为它试图在正则表达式中插入引号.
com.mongodb.util.JSONParseException: ({ $regex : ^"testUser"$, $options: 'i' } ^
如果我尝试使用/…/i正则表达式,我会遇到同样的问题.
有没有解决方案,不必使用mongoTemplate,或自己构建正则表达式?
interface UserRepository extends Repository<User, BigInteger> { List<User> findByUsernameIgnoreCase(String username); }
翻译自:https://stackoverflow.com/questions/23423464/exact-case-insensitive-match-in-spring-data-mongo