我最近与MongoDB和spring-data一起工作,我有这个问题。我想获取categoryId = cat120026的所有项目。为此,我编写了以下方法:
接口:
public interface ProductService {
@Query("{ 'categoryId' : '\"cat120026\"' }")
ProductModelResponse getProductByCategory();
}
接口展示:
@Autowired
@Qualifier("productRepository")
private MongoRepository<ProductModel, String> repository;
@Override
public ProductModelResponse getProductByCategory() {
return new ProductModelResponse(repository.findAll());
}
但是我的查询没有收到,我得到了项目的完整列表。我看到了mongoTemplate示例,但不太了解参数中指定了哪种类。我的ProductResponseModel是我的JSON响应。该如何改善?
答案:
@Override
public ProductModelResponse getProductByCategory() {
Query query = new Query(Criteria.where("categoryId").is("\"cat120026\""));
return new ProductModelResponse(pp.find(query, ProductModel.class));
}