Spring Data Mongo: поиск по пересечению массива - PullRequest
0 голосов
/ 23 апреля 2019

Я использую Spring Data DSL для запроса MongoDB следующим образом:

Page<Member> findByCommunitiesCodeContaining(String code, Pageable pageable);

Возвращает всех членов сообщества с данным кодом.

Проблема: Мне нужно передать коллекцию кодов сообщества и вернуть участников, которые участвуют как минимум в одном сообществе из перечисленных кодов (где пересечение сообществ не пустое).

Я просматривал документацию Spring Data Mongo, но не смог 'не найти DSL, поддерживающий этот случай.

Вопрос: Как запросить записи с пересечением коллекций?

Подробнее. Вот какмоя структура выглядит на стороне Java.

@Document
public class Member {
    @Id
    private String id;
    private List<Community> communities;
}

Сообщество:

public class Community {
    private String region;
    private String code;
}

1 Ответ

0 голосов
/ 29 мая 2019

Одним из вариантов может быть использование регулярного выражения

Page<Member> findByCommunitiesCodeRegex(String code, Pageable pageable);

Код должен быть регулярным выражением типа:

String code = (code1|code2|code3|....)

Надеюсь, это поможет, я не пробовал, но стоит попробовать.

...