Я недавно работал с 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));
}