У меня есть документ, который содержит Map
из <String, Integer>
.
Учитывая Set<String>
, я бы хотел запросить все документы так, чтобы как минимум одна из строк в данном наборе существовала как ключ карты.
т.е. если карта {"foo" : 1, "baz": 2}
и заданный набор "["foo"]
, этот конкретный документ будет извлечен.
Другая формулировка запроса: пересечение между набором ключей карты и заданным набором не является пустым набором.
Я думал, что самый простой способ сделать это - использовать несколько Criteria
с формы
Criteria.where("path.to.map." + key).exists(true);
И объединять их в цепочку, используя: criteria.orOperator()
, но orOperator
не принимает коллекцию.
Как правильно это делать?