【发布时间】:2012-07-21 17:51:14
【问题描述】:
我将 spring-data mongo 与基于 JSON 的查询方法一起使用,但不确定如何在搜索查询中允许可选参数。
例如 - 假设我有以下功能
@Query("{ 'name' : {$regex : ?0, $options : 'i'}, 'createdDate' : {$gte : ?1, $lt : ?2 }} }")
List<MyItem> getItemsLikeNameByDateRange(String name, Date startDateRange, Date endDateRange);
-但我不想应用名称正则表达式匹配,或者如果将 NULL 值传递给方法,则不应用日期范围限制。
目前看来我可能必须使用 mongoTemplate 构建查询。
是否有任何替代方案 - 或者使用 mongoTemplate 是最佳选择?
谢谢
【问题讨论】:
-
现在我已经走上了使用 Criteria 类的路线。它看起来确实比在注解中嵌入 JSON 查询更简洁,并且更容易自定义检索哪些字段。
标签: java spring mongodb spring-data spring-data-mongodb