Я получаю доступ к MongoDB, используя данные о Spring и Querydsl.Документы в моей коллекции имеют поле tags
со значением массива.Я хотел бы найти документы, для которых tags
содержит все заданные значения.То же самое, что делает оператор $ all MongoDB.Я пробовал следующее:
Set<String> tags = ...["red", "blue"]
QDoc $ = QDoc.doc;
BooleanBuilder where = new BooleanBuilder();
...
if (!isEmpty(tags)) {
tags.forEach(tag -> where.and($.tags.contains(tag)));
}
...
return docRepo.findAll(where, pageable);
Использование приведенного выше кода приводит к запросу, в котором последний элемент tags
set выигрывает.
{ "tags": "blue"}
Есть лиспособ запроса документов по подмножеству значений полей массива в Querydsl?