Репозиторий Spring-Data JPA с MongoDB, как найти все элементы, используя отдельные с несколькими полями - PullRequest
0 голосов
/ 07 мая 2020

У меня есть приложение с SpringData, которое использует репозитории (интерфейсы) для выполнения запросов к MongoDB.

Мне было интересно, как я могу выполнить инструкцию findAll, используя distinct с двумя значениями, то есть:

Коллекция: люди

столбцы: имя, фамилия, адрес

Найти всех разных пользователей (имя и фамилия).

1 Ответ

0 голосов
/ 11 мая 2020

MongoDB distinct позволяет извлекать отдельные значения одного поля в коллекции, что отличается от других хранилищ. Вы можете найти больше о distinct в справочнике MongoDB документации .

Чтобы получить отдельные значения с несколькими полями, вам необходимо использовать $group агрегацию , которую вы затем можно подать заявку через @Aggregation.

Может выглядеть примерно так:

{ '$group': 
    { 
        '_id' : { '$concat' : ['$lastname', '$firstname'] },
        'lastname' : { '$first' : '$lastname' },
        'firstname' : { '$first' : '$firstname' }
    } 
}
@Aggregation("{ '$group' : { '_id' : { '$concat' : ...
List<Person> findAllDistinctFirstnameLastname();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...