首页 > 解决方案 > 如何查询 Mongo 存储库中的给定参数

问题描述

我有一个如下的 mongo 存储库查询,如果我们同时提供名称和价格,它会给出响应。如果我们只提供名称或价格或两者都提供,我想得到回应。如何使这些参数可选。如果我们同时提供名称和价格,我想检索聚合结果,除非我只想从给定字段中搜索。非常感谢您的帮助。

List<Response> findByNameAndPrice(String name, int price)

标签: spring-bootjpaspring-data-jpamongorepository

解决方案


在这里我找到了一个使用 mongodb 正则表达式的简单解决方案,我们可以这样写一个查询, @Query("{name : {$regex : ?0}, type : {$regex : ?1})List<String> findbyNameAndType(String name, String type) 诀窍是如果我们想查询给定的参数,我们应该为其他参数设置一些默认值。作为一个例子,这里认为我们只提供名称。然后我们通过将其默认参数设置为“.*”来设置类型以选择其所有可能的匹配项。此正则表达式模式提供任何字符串匹配。


推荐阅读