簡體   English   中英

MongoDb 在springBoot中使用MongoRepository查詢

[英]MongoDb Query In springBoot using MongoRepository

我的 GET api 中有多個查詢參數(如姓名、年齡、性別、位置等...n 個數字)。 現在我需要使用這些查詢值來查詢我的 mongo 數據庫。 現在用戶可以發送 0 到 n 個查詢參數。

我正在嘗試使用類似的東西

findByNameAndAge(String Name , String Age)

或者

findByNameAndAgeAndGender(String Name , String Age, String Gender)

但問題是考慮到用戶可以發送的所有排列和組合,我將不得不編寫多個查詢。 有沒有更好的方法呢?

您將需要弄臟 Mongo 操作 class 並根據傳遞的 model 參數動態構建條件查詢。 為了使事情更容易,您可以堅持將參數名稱映射到實體屬性約定。

在您的情況下,您可以使用

<S extends T> Iterable<S> findAll(Example<S> example);

因此,第一步是從您的請求參數創建一個示例,為此,您需要創建一個實體實例,該實例具有要查詢的所需屬性的值,並為其他屬性創建 null。 例如,如果您有查詢名稱和年齡作為參數。 因此,您只需設置實體的名稱和年齡,並讓 null 具有 rest 屬性。 如果你有你的實體,你應該只創建示例並查詢它。

Example<ENTITY_CLASS> example = Example.of(createdEntity);
return repository.findAll((example);

還有一些其他選項可以使用 Example 和 ExampleMatcher 以包含和正則表達式來區分大小寫。 您還可以設置他是否需要在字段之間使用 OR 或 AND 運算符。

你可以看看這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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