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

Spring data MongoDB check if field contains text

我在 mongoDb 集合 "name" 中有字段,其中包含:

"26.11.2018(2)"

我使用正则表达式搜索字段 "name":

中是否包含任何字符串
String search = "11.2018(2)";
return Criteria.where("name").regex(search);

我遇到异常,正则表达式是错误的(因为“)”)。还有其他的搜索方式吗?

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

我现在无法测试它,但它可能会起作用:

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