你好,所以我試圖從 mongoDB 獲取 ID 串列,撰寫了這段回傳 id:value 映射的代碼,我只希望它只回傳 values 。
query=new Query(Criteria.where("_id").is("47b3b1ab-2d80-42cf-b289-e3d45497b59f"));
query.fields().include("recordList.id").exclude("_id");
System.out.println( mongoTemplate.findOne(query, Map.class,"Company3"));
{recordList=[{id=rec4vCGPy3EnXRuCM}, {id=recAivYlqtDzZP62C}, {id=recbcLfxuLLB6Jjn0}, {id=reckIA8RdQtDUKCYI}, {id=rectnZZzBJ2iKN8eO}]}
但我需要這樣的東西
[rec4vCGPy3EnXRuCM, recAivYlqtDzZP62C, recbcLfxuLLB6Jjn0, reckIA8RdQtDUKCYI, rectnZZzBJ2iKN8eO]
是的,我知道我可以像這樣操作結果以獲得所需的結果,但我想知道是否可以直接從資料庫獲得相同的結果而不是這樣
List<Map<String,String>> list = (List<Map<String, String>>) mongoTemplate.findOne(query, Map.class,"Company3").get("recordList");
List<String> idList=new ArrayList<>();
for (Map<String, String> stringStringMap : list) {
idList.add(stringStringMap.get("id"));
}
這就是我的資料看起來像 mongodb 檔案。抱歉插入影像,無法復制,否則無法讀取。
uj5u.com熱心網友回復:
也許不同的可以幫助。https://docs.mongodb.com/manual/reference/method/db.collection.distinct/
Query query=new Query(Criteria.where("_id").is("adfe377d-6e5b-48f0-b5bb-12b09f57285d"));
System.out.println(mongoTemplate.findDistinct(query,"recordList.id","Company4",String.class));
uj5u.com熱心網友回復:
你不能使用 Mongodb 做到這一點。該資料庫是面向檔案的,這意味著給定一個條件(在本例中為 id),您將獲得滿足條件的檔案串列,其中每個檔案都有一些屬性和一些值。
為了更簡單,你可以重寫你的代碼,這樣你就可以將你的結果映射到一個 pojo,它只包含你想要的 id 串列,沒有鍵。
這將類似于以下內容:
public class Result {
private List<String> ids;
// getters and setters here
@override
public String toString(){
return ids.toString();
}
}
現在,您的存盤庫方法檢索資料將如下所示:
query = new Query(Criteria.where("_id").is("47b3b1ab-2d80-42cf-b289-e3d45497b59f"));
// 不需要這個 //query.fields().include("recordList.id").exclude("_id");
System.out.println( mongoTemplate.findOne(query, Result.class,"Company3"));
uj5u.com熱心網友回復:
Oblivion02 的解決方案有點錯誤,但絕對暗示了我正確的方向,謝謝。
Query query=new Query(Criteria.where("_id").is("adfe377d-6e5b-48f0-b5bb-12b09f57285d"));
System.out.println(mongoTemplate.findDistinct(query,"recordList.id","Company4",String.class));
僅這兩行就給了我一個很好的 id 值串列
[rec4vCGPy3EnXRuCM, recAivYlqtDzZP62C, recbcLfxuLLB6Jjn0, reckIA8RdQtDUKCYI]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/378276.html
上一篇:找出有多少個值小于陣列中的某個值
下一篇:jQuery腳本不更新表單輸入值
