[英]Query in spring data mongo repository
我想在 spring 數據 mongodb 上編寫自定義查詢。 像這樣的東西:
public interface CarRepo extends MongoRepository<Car, String> {
@Query("select distinct(brand) from Car ")
public List<String> findDistinctBrand();
}
但它拋出了一個錯誤“ Caused by: com.mongodb.util.JSONParseException:
” Caused by: com.mongodb.util.JSONParseException:
。 我怎樣才能做到這一點?
MongoDB 不支持不同的命令。 它只支持使用distinct命令返回不同的字段值。
您需要使用 Mongodb 模板來獲取結果:
DBCollection colllection = mongoTemplate.getCollection("collectionName");
Criteria criteria = new Criteria();
criteria.where("your column").is("your value");
Query query = new Query();
query.addCriteria(criteria);
List list = mongoTemplate.getCollection("collectionName")
.distinct("source",query.getQueryObject());
你在mongodb中使用SQL
查詢,但是mongodb有自己的查詢語言。 您需要用該語言編寫查詢。 由於您將使用distinct
命令,因此您不能使用Query
注釋或 spring 數據查詢來執行此操作。 您需要使用MongoTemplate
創建自定義存儲庫並執行不同的命令。
根據文檔,您應該能夠通過簡單地在存儲庫接口中定義方法來完成此操作,而無需@Query
的幫助:
public interface CarRepo extends MongoRepository<Car, String> {
public List<String> findDistinctBrand();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.