Spring数据MongoDB检查字段是否包含文本

时间:2018-11-29 12:43:07

标签: java regex spring mongodb spring-data-mongodb

我在mongoDb集合“名称”中包含以下字段:

"26.11.2018(2)"

我使用正则表达式来搜索“名称”字段中是否包含任何字符串:

String search = "11.2018(2)";
return Criteria.where("name").regex(search);

我有一个例外,正则表达式是错误的(由于“)”)。这样搜索还有其他可能性吗?

1 个答案:

答案 0 :(得分:1)

您需要转义正则表达式中使用的值。

我现在无法对其进行测试,但是它可能会起作用:

String search = "some pattern(a)12.";
pattern = Pattern.compile(Pattern.escape(search));
return Criteria.where("name").regex(pattern);

https://mongodb.github.io/mongo-java-driver/3.4/javadoc/?com/mongodb/client/model/Filters.html