java - 如何在java中查询mongoDb时使用Criteria all?

Posted

技术标签:

【中文标题】java - 如何在java中查询mongoDb时使用Criteria all?【英文标题】:How to use Criteria all in querying mongoDb in java? 【发布时间】:2022-01-18 12:39:22 【问题描述】:

我将 MongoDB 用于我的 spring-boot 应用程序。我需要找到与 ID 列表对应的文档列表。

我有一个 Role 集合和一个名为 roleIdList 的列表。此列表 (roleIdList) 包含需要获取其文档的所有角色 ID。

以下是我的查询:

// My roleIdList is of type List<ObjectId>. I also tried with List<String>

Query query = Query.query(where("_id").all(roleIdList));
List<RolesEntity> rolesEntityList = mongoOperations.find(query, RolesEntity.class);

但是通过上面的查询,我得到了空的角色实体列表。谁能帮帮我。

提前致谢!

【问题讨论】:

【参考方案1】:

使用in 而不是all

Query query = Query.query(where("_id").in(roleIdList));

见:

https://docs.mongodb.com/manual/reference/operator/query/all/ https://docs.mongodb.com/manual/reference/operator/query/in/

【讨论】:

【参考方案2】:

您也可以使用:List&lt;RolesEntity&gt; findByRole_IdIn(List&lt;String&gt; roleIdList)

【讨论】:

以上是关于java - 如何在java中查询mongoDb时使用Criteria all?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 mongoDB 条件查询在 java 中获得更干净的代码 [重复]

如何在 MongoDB Java 中编写地理空间查询

如何使用 Java 中的 ObjectID 更新 MongoDB 中的文档

java如何实现mongodb中查询指定字段?

java 如何查询mongodb字段名称?

求教mongodb大神,在java中怎么以时间为条件查询