Проверьте, все ли идентификаторы существуют в репо
Я могу проверить, существует ли ID в моем репо, используя этот запрос:
exists(String id);
Но какой запрос я могу использовать, чтобы узнать, все ли элементы списка существуют в моем репо? Что-то вроде этого?
existAll(List<String> id);
1 ответ
Используя встроенные методы, я вижу только один вариант: получить все записи, используя findAllById, а затем проверить размер. Это плохо, потому что вы должны сами проверить существование (сравнивая размер результата), и вы получаете целые записи, когда они вам не нужны.
Я предлагаю написать свой собственный метод, предпочтительно делать подсчет записей, идентификаторы которых находятся в списке ваших идентификаторов. Я думаю, что это будет что-то вроде этого, не очень знакомы с Монго:
db.collection.count({ id: { $in: [ 1, 2, 3 ] } });
Вы можете просто добавить метод в свой репозиторий, например так:
public interface YourRepository extends MongoRepository<YourItem, String> {
Long countByIdIn(List<String> ids);
}