Как удалить критерий в Spring Mongo Query - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть запрос Монго org.springframework.data.mongodb.core.query.Query с одним критерием, и я хочу обновить этот критерий, добавив те же критерии с другим значением:

query.addCriteria(Criteria.where("clientName").is("client2"));

Но это выдает:

Метод сгенерировал исключение org.springframework.data.mongodb.InvalidMongoDbApiUsageException.Из-за ограничений com.mongodb.BasicDocument вы не можете добавить второй критерий «clientName».Запрос уже содержит '{"clientName": "client1"}'

Я пытался удалить критерии, используя:

query.getQueryObject().remove("clientName")

Но похоже, что он возвращает копиюкритериев, и это не удалило критерии.Я все еще получаю то же исключение.

Как правильно удалить критерий в запросе Монго?

1 Ответ

0 голосов
/ 25 сентября 2019

Вы можете сделать следующее:

@Autowired
private MongoTemplate mongoTemplate;

public Query queryName(Type1 value1, Type2 value2) {
    Query query = new Query(new Criteria().orOperator(Criteria.where("field1").is(value1), Criteria.where("field2").is(value2)));
}

Обратите внимание, что вы можете изменить «orOperator» на «andOperator» в зависимости от того, что вам нужно, или вы можете использовать один критерий.

Я думаю, что вместо удаления критерия вы должны создать новый запрос, используя, например, функцию выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...