当前位置: 首页 > 知识库问答 >
问题:

Spring data mongoDB通过集合查找

江宏深
2023-03-14

我使用的是spring数据mongodb。

这是我的控制器方法:

控制器:

@RequestMapping(value = "/getByCategory",method = RequestMethod.GET, consumes=MediaType.APPLICATION_JSON, produces=MediaType.APPLICATION_JSON)    
    public Iterable<Node> getByCategory(@RequestParam(value="categories") List<String> categories) throws EntityNotFoundException {
        Iterable<Node> nodes = nodeService.getByCategory(categories);
        return nodes;
    }

这里我将字符串列表作为请求参数传递。

我的服务方式是:

public Iterable<Node> getByCategory(List<String> categories) {

        return repository.findByCategories(categories);
    }

存储库代码:

@RepositoryRestResource
public interface NodeRepository extends MongoRepository<Node, String> , PagingAndSortingRepository<Node, String>{


    @Query("{categories:{$in: ?0}}")
    Iterable<Node> findByCategories(List<String> categories);

}

在这里,我在存储库中的查询总是返回空数组[]。我不知道这个查询有什么问题。

我的请求URL是:

http://localhost:8080/document/getByCategory?categories="category1"&categories="category2"

共有1个答案

年业
2023-03-14

我认为问题是在你的网址。尝试删除引号。

<代码>http://localhost:8080/document/getByCategory?categories=category1

 类似资料:
  • 我正在用Java开发一个使用JPA的路线规划系统。我需要创建一个findBy方法,通过包含它的城市列表来查找路线。以下是课程: 现在我尝试了,但并不惊讶它不起作用,如下所示: 有没有一种简单的方法可以使用JPA,或者我必须编写一个困难的自己的@Query并以某种方式迭代,才能通过集合找到一个实体?

  • 我有实体类用户通过@IdClass注释使用复合键 复合键: 我将Spring数据与hibernate JPA一起使用。因此,我有回购接口: 我想通过具体姓名和姓氏列表从数据库中获取所有活跃用户。例如。我想使用这样的方法 如何通过Spring数据或JPQL查询此需求?

  • 问题内容: 我有一个 和 我想过滤掉那些不在赛场上的球员。 我知道如何在Java 8之前的Vanilla中执行此操作 我正在尝试使用Lambda表达式编写此简单的代码,但是我正在努力在过滤器中工作 这不会编译。 “无法解决方法getUsername()” 问题答案: 您将lambda表达式放在错误的位置-整个参数应该是lambda表达式。换句话说,“给一个玩家,我应该过滤还是不过滤?”

  • 问题内容: 我想问一下是否有可能使用hibernate方式做到这一点。假设我已经运行了HQL并检索了一个集合。是否可以使用hibernate进一步过滤它? 我试图在标头类中使用,并在查询之前添加session.enable(),但似乎无法正常工作。 样例代码 精简HQL 问题答案: 不。至少不是您问的方式。一旦您要求Hibernate(使用方法)访问数据库,Hibernate就发挥了作用,结果现在

  • 问题内容: 我要实现以下功能: 如何检查向量元素类型? 请注意, 向量可能为空,因此我无法检查第一个元素是“ instanceof”整数还是String … 编辑: 好吧,我脑子里有个念头,我不知道它是否会起作用 我可以按以下方式实现checkType函数: 是否可以检查T是否为整数?! 提前致谢 问题答案: *由于 类型擦除, *泛型类型参数 在运行时不可恢复(某些特殊情况除外)。这意味着在运行

  • 我对mongo很陌生,我正在尝试用两个查询从收集中获取所有数据,我有条目,每个条目都有startdate。我需要得到所有的数据,首先所有项目的开始日期低于当前日期排序的DESC和跟随其余数据的开始日期大于或等于当前日期排序的asc。我不知道该怎么做。很抱歉我的英语不好,我是新手。 我在下一条路上试过这样做 但如果可能的话,我想通过一个查询来实现