簡體   English   中英

在 spring 數據 mongo 存儲庫中查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM