2016-12-14 56 views
0

這是存儲在mongo db中的數據的值。我如何能夠檢索「HomeTown」的所有數據並將其全部存儲到列表中?我的列表將包含AA,AA,BB,BB等......我想使用該數組列表創建每個家鄉的for循環。如何將mongo數據庫的列中的所有值都檢索到ArrayList中?

樣品蒙戈數據

[{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"} , "HomeTown" : "AA" , 
"PhoneNumber" : { "CustName" : "xxx" , "Number" : "3403290"}, 
"MobileNumber" : { "CustName" : "yyy" , "Number" : "9323304302"}}] 

    [{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"} , "HomeTown" : "AA" , 
"PhoneNumber" : { "CustName" : "xxx" , "Number" : "3403290"}, 
"MobileNumber" : { "CustName" : "yyy" , "Number" : "9323304302"}}] 

    [{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"} , "HomeTown" : "BB" , 
"PhoneNumber" : { "CustName" : "xxx" , "Number" : "3403290"}, 
"MobileNumber" : { "CustName" : "yyy" , "Number" : "9323304302"}}] 

    [{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"} , "HomeTown" : "BB" , 
"PhoneNumber" : { "CustName" : "xxx" , "Number" : "3403290"}, 
"MobileNumber" : { "CustName" : "yyy" , "Number" : "9323304302"}}] 

如何我可以得到所有在Java中「故鄉」的值到一個數組?我正在嘗試爲HomeTown名稱創建一個for循環。我目前通過Spring啓動使用mongodb依賴。我不知道我將如何實現MongoDB到我的Java使用mongo數據庫。

嘗試/問題

我可以使用下面的代碼列表檢索MongoDB的值。我正試圖將此列表轉換爲數組列表。上objLst.get

public List<AppPortModel> getAppPortList() { 
List<ApServerModel> objLst = mongoOperations.findAll(ApServerModel.class); 

String[] apServerArray = new String[objLst.size()]; 
for(int i = 0; i < objLst.size(); i++) { 
      apServerArray[i] = objLst.get(i); 
     } 

錯誤(ⅰ)

Type mismatch: cannot convert from ApServerModel to String 

嘗試#2按照實施例薩加爾

 @Autowired 
    MongoOperations mongoOperations; 

MongoCollection<ApServerModel> myCollection = **mongoOperations.getCollection("apAllCustomer");** 

List<ApServerModel> result = myCollection.find().into(new ArrayList<>()); 

錯誤上mongoOperations.getCollection

Type mismatch: cannot convert from DBCollection to MongoCollection<ApServerModel> 
+0

你嘗試過什麼?請閱讀http://stackoverflow.com/help/how-to-ask並編輯您的問題。 – StackFlowed

+0

這是JSON格式嗎? –

+0

@HovercraftFullOfEels這些是存儲在mongo數據庫中的數據。 – Jesse

回答

1

看起來你正在使用蒙戈3.X driver.You'll需要使用這樣的事情。

MongoClient mongoClient = new MongoClient(); 
MongoDatabase db = mongoClient.getDatabase("mkoydb"); 
MongoCollection<Document> myCollection = db.getCollection("apAllCustomer"); 
List<Document> result = myCollection.find().into(new ArrayList<>()); 

修復了嘗試1:

public List<AppPortModel> getAppPortList() { 
    List<ApServerModel> objLst = mongoOperations.findAll(ApServerModel.class); 
    String[] apServerArray = new String[objLst.size()]; 
    for(int i = 0; i < objLst.size(); i++) { 
     apServerArray[i] = objLst.get(i).getHomeTown(); 
} 

修復了嘗試2:

DBCollection dbCollection = mongoOperations.findAll(AppServreModel.class, "apAllCustomer"); 
+0

mongodb的這個腳本會在雲代工廠工作嗎?我上傳了一個帶有一些mongodb插件的應用程序,並且該應用程序從未加載過。 – Jesse

+0

它應該嘗試一下。這不是特定的春天。 – Veeram

+0

我試過你的例子,但我收到一些語法錯誤。我在帖子中發佈錯誤。 – Jesse

0

您可以撥打toArray(),直觀地返回List<DBObject>

List<DBObject> myList = null; 
     DBCursor myCursor=myCollection.find(new BasicDBObject(),"HomeTown"); 
     myList = myCursor.toArray(); 

,如果你使用的是Java驅動程序與3.0及以上版本,你也可以做

collection.find().projection(Projections.include("HomeTown")); 
相關問題