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

时间:2018-09-03 12:22:21

标签: java mongodb mongodb-query spring-mongodb

我可以使用以下查询来检查我的回购中是否存在ID:

exists(String id);

但是我可以使用什么查询来确定列表中的所有元素是否都存在于我的仓库中?像这样吗?

existAll(List<String> id);

1 个答案:

答案 0 :(得分:1)

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

我建议您编写自己的方法,最好对ID列表中的ID进行记录计数。我认为可能是这样,对Mongo并不是很熟悉:

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

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

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