[英]creating a custom query in Springboot mongodb(using crudRepository)
[英]MongoDb Query In springBoot using MongoRepository
我的 GET api 中有多个查询参数(如姓名、年龄、性别、位置等...n 个数字)。 现在我需要使用这些查询值来查询我的 mongo 数据库。 现在用户可以发送 0 到 n 个查询参数。
我正在尝试使用类似的东西
findByNameAndAge(String Name , String Age)
或者
findByNameAndAgeAndGender(String Name , String Age, String Gender)
但问题是考虑到用户可以发送的所有排列和组合,我将不得不编写多个查询。 有没有更好的方法呢?
您将需要弄脏 Mongo 操作 class 并根据传递的 model 参数动态构建条件查询。 为了使事情更容易,您可以坚持将参数名称映射到实体属性约定。
在您的情况下,您可以使用
<S extends T> Iterable<S> findAll(Example<S> example);
因此,第一步是从您的请求参数创建一个示例,为此,您需要创建一个实体实例,该实例具有要查询的所需属性的值,并为其他属性创建 null。 例如,如果您有查询名称和年龄作为参数。 因此,您只需设置实体的名称和年龄,并让 null 具有 rest 属性。 如果你有你的实体,你应该只创建示例并查询它。
Example<ENTITY_CLASS> example = Example.of(createdEntity);
return repository.findAll((example);
还有一些其他选项可以使用 Example 和 ExampleMatcher 以包含和正则表达式来区分大小写。 您还可以设置他是否需要在字段之间使用 OR 或 AND 运算符。
你可以看看这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.