Java 如何在操作器内部使用AND运算符
我有一个函数Java 如何在操作器内部使用AND运算符,java,spring,mongodb,Java,Spring,Mongodb,我有一个函数 Criteria[] regexBuilder(String field, String[] patterns) { return Arrays.stream(keyWordPattern) .map(it -> Criteria.where(field).regex(Pattern.compile(it, Pattern.LITERAL).toString(), "si")) .toArray(Criteria[]::
Criteria[] regexBuilder(String field, String[] patterns) {
return Arrays.stream(keyWordPattern)
.map(it -> Criteria.where(field).regex(Pattern.compile(it, Pattern.LITERAL).toString(), "si"))
.toArray(Criteria[]::new);
}
我是这样使用的:
// Assume type: String and keywords: String[]
Criteria.where("type").is(type).andOperator(regexBuilder("description", keywords));
如果description
字段包含all关键字或notes
字段包含all关键字,则我要搜索匹配项。比如:
Criteria.where("type").is(type).orOperator(
andOperator(regexBuilder("description", keywords)),
andOperator(regexBuilder("notes", keywords)),
);
我将如何构造这样一个查询?您可以尝试以下方法
Criteria.where("type").is(type).orOperator(
new Criteria().andOperator(regexBuilder("description", keywords)),
new Criteria().andOperator(regexBuilder("notes", keywords)),
);