在 Java Spring Boot 应用程序中,根据两个具有 OR 条件的字段检索 MongoDB 文档

Retrieve MongoDB documents based on two fields with OR condition in Java Sprintboot application

我有一个 MongoDB 集合,其中包含两个文档

{
"field1":"value1"
}

{
"field1":"value2"
"field2":"value1"
}

我想在我的 Springboot 微服务中检索这两个文档。

Query query = new Query(Criteria.where("field1").is("value1").orOperator(Criteria.where("field2").is("value1")))
List<Something> list = mongoTemplate.find(query, Something.class);

上面的代码 returns 一个空列表,而下面的代码 returns 第一个文档。

Query query = new Query(Criteria.where("field1").is("value1"))
List<Something> list = mongoTemplate.find(query, Something.class);

如何检索这两个文档?

您需要使用 等语法,即 orOperator(where1, where2) 而不是 where1.orOperator(where2):

Criteria criteria1 = new Criteria();
        criteria1.orOperator(
                Criteria.where("dumEmployeeId").is(user.getId()),
                Criteria.where("toDumEmployeeId").is(user.getId())).
                andOperator(
                    new Criteria().orOperator(
                            Criteria.where("priority").is("Important"),
                            Criteria.where("priority").is("Urgent")
                    )
                );