У меня есть коллекция 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);
Приведенный выше код возвращает пустой список, тогда как приведенный ниже код возвращает первый документ.
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")
)
);
Не могли бы вы попробовать использовать синтаксис из stackoverflow.com/a/51242834/492336 — например,
orOperator(where1, where2)
вместоwhere1.orOperator(where2)
.