检查回购中是否存在所有ID

Check if all ids exist in repo

我可以使用以下查询检查我的存储库中是否存在 ID:

exists(String id);

但是我可以使用什么查询来查明我的存储库中是否存在列表的所有元素?是这样的吗?

existAll(List<String> id);

使用内置方法,我只看到一个选项:使用 findAllById 获取所有记录,然后检查大小。这很糟糕,因为你必须自己检查是否存在(通过比较结果的大小)并且当你不需要它们时你会得到完整的记录。

我建议编写您自己的方法,最好对您的 ID 列表中的 ID 的记录进行计数。我觉得应该是这样的吧,不太熟悉 Mongo:

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

您可以只向存储库添加一个方法,如下所示:

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