我正在使用MongoTemplate构造一个查询,该查询搜索字符串(与
LIKE %abc%
在SQL中)跨越多个字段。所以,我有一个物体像:
{
"location": "Pacific",
"status": "Closed",
"badge": "220394"
}
我试过的
:
现在,我写了一个查询如下:
Criteria freeTextCriteria = Criteria.where("badge").regex(".*" + freeText + ".*", "i");
dynamicQuery.addCriteria(freeTextCriteria);
只有当我通过时才会返回到对象上方
freeText
作为
2039
但当我通过时不返回任何结果
自由文本
作为
220394
(全值)。为什么会这样?
另外,我需要对多个字段进行此查询。所以,
2039年
应该匹配
location
或者
status
或者
badge
. 当我运行以下查询时:
Criteria freeTextCriteria =
Criteria.where("location").regex(".*" + freeText + ".*", "i")
.orOperator(Criteria.where("badge").regex(".*" + freeText + ".*", "i"));
dynamicQuery.addCriteria(freeTextCriteria);
上面没有返回任何结果,即使部分文本。我该怎么解决?