spring data mongodb按集合查找

时间:2015-06-09 06:58:42

标签: mongodb spring-mvc annotations spring-data-mongodb

我使用的是spring-data-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);

}

这里,我在存储库中的查询总是返回空数组[]。 我没有得到这个查询的错误。

我的请求网址是:

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

1 个答案:

答案 0 :(得分:1)

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

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