java - 如何在orOperator里面使用andOperator

标签 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[]::new);
}

我是这样使用的:

// Assume type: String and keywords: String[]
Criteria.where("type").is(type).andOperator(regexBuilder("description", keywords));

如果 description 字段有 all 关键字 notes,我想要的是搜索匹配项> 字段包含所有 关键字。像这样的东西:

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

关于java - 如何在orOperator里面使用andOperator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43129383/

相关文章:

java - Spring boot h2数据库获取驱动程序出错

java - Angularjs $http.post 数据未与后端 pojo 绑定(bind)

ruby - MongoDB聚合数据生成 'latest activity'

java - 没有同时监视文件夹

java - 如何将 Java DB(名为 Derby)与 hibernate 一起使用?

java - 创建类路径资源 [EnableWebMvcConfiguration.class] 中定义的名称为 'resourceHandlerMapping' 的 bean 时出错

mongodb - mongo db docker 镜像身份验证失败

javascript - 如何从后端获得实时反馈?

java - 如何使用 nimbus oauth oidc sdk 通过代理获取 token

java - Maven 编译错误 : Fatal error compiling: invalid target release: 1. 8