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)),
);