在Spring Data MongoDB存储库的@Query注释中使用$or运算符

3

我正在使用spring-data-mongodb。

我想在我的存储库中使用$or操作符。

这是我的查询:

@Query("{'type':?0}")
List<Doc> findByType(String type, Pageable pageable);

如何在@Query中使用$or,以便可以匹配类型或名称并获取文档。请帮忙。
3个回答

6
根据 MongoDB 的 $or 查询操作符参考文档,您的查询应该是:
@Query("{'$or':[ {'type':?0}, {'name':?1} ]}")

您需要提供通行证类型和名称参数。

非常有用,对我很有效,谢谢@ikumen。 - Mugeesh Husain

4

我发现了关于我的问题的答案,其中还包括可选的查询参数。

查询应该是:

@Query("{'type':?0,'$or':[{ $where: '?1 == null' },{'key':?1},{ $where: '?2 == null' },{'username':?2}]}")
    List<Doc> findByType(String type, String key, String username, Pageable pageable);

2
您甚至不需要手动定义查询语句:

Page<Doc> findByTypeOrName(String type, String name, Pageable pageable);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接