Spring MongoTemplate - 在集合

时间:2016-02-25 09:47:58

标签: java regex spring mongodb mongotemplate

说我在mongo文档中有一个多值字段:

public class MongoEntity{
    private List<String> field;
}

在该字段中查询正则表达式的正确criteria是什么?

我试过

Criteria.where(searchText).regex(searchText).in("field");

但结果是

org.springframework.data.mongodb.UncategorizedMongoDbException: 
Can't canonicalize query: BadValue unknown top level operator: $in; 
nested exception is com.mongodb.MongoException: Can't canonicalize query: BadValue unknown top level operator: $in

2 个答案:

答案 0 :(得分:0)

因此经过多次试验和错误后,事实证明它比我想象的更简单(尽管有点反直觉):

Criteria.where("field").regex(searchText);

答案 1 :(得分:0)

这正在工作

List<Pattern> regs = new ArrayList<Pattern>()
regs.add(Pattern.compile(regex, Pattern.CASE_INSENSITIVE))
Criteria.where("tags").regex(regs)