Проверьте, все ли идентификаторы существуют в репо - PullRequest
0 голосов
/ 03 сентября 2018

Я могу проверить, существует ли ID в моем репо, используя этот запрос:

exists(String id);

Но какой запрос я могу использовать, чтобы узнать, все ли элементы списка существуют в моем репо? Как то так?

existAll(List<String> id);

1 Ответ

0 голосов
/ 03 сентября 2018

Используя встроенные методы, я вижу только один вариант: получить все записи, используя findAllById , а затем проверить размер. Это плохо, потому что вы должны сами проверить существование (сравнивая размер результата), и вы получаете целые записи, когда они вам не нужны.

Я предлагаю написать свой собственный метод, предпочтительно подсчет записей, идентификаторы которых находятся в списке ваших идентификаторов. Я думаю, что это будет что-то вроде этого, не очень знакомое с Монго:

db.collection.count({ id: { $in: [ 1, 2, 3 ] } });

Вы можете просто добавить метод в свой репозиторий, например так:

public interface YourRepository extends MongoRepository<YourItem, String> {
    Long countByIdIn(List<String> ids);
}
...