我沒有在Java程序,在下面的表格中MongoDB
數據庫生成值,並將其存儲:如何以檢索從存儲在MongoDB中使用Java驅動器陣列整數和時間戳值
{
"_id" : 0,
"destination" : "destination_1",
"origin" : "origin1",
"duration_value" : [
5,
5,
12
],
"duration_text" : [
null,
null,
null
],
"timestamp" : [
ISODate("2017-05-03T15:17:12.570Z"),
ISODate("2017-05-03T15:17:39.363Z"),
ISODate("2017-05-06T17:16:43.925Z")
]}
正如你所看到的有三個數組。在duration_value
數組中,它們將始終以整數值存儲,並且在timestamp
數組中它們將始終存儲time stamp
值。 我現在需要檢索存儲在duration_value
中的整數值,以便進行計算並檢索timestamp
數組中輸入的值,而不是DBObject
或BasicDBObject
,但作爲類似的Timestamp
類中的對象,以便能夠做其他操作。我能怎麼做?
到目前爲止,我已經能夠從數據庫中檢索元素,就像DBObject
,而不是與它們的原始類型,我甚至不能投的DBObject
錯誤沒有錯誤。我用下面的代碼:
MongoClient mongo = null;
DBCursor cursor = null;
try {
mongo = new MongoClient ("localhost", 27017);
DB db = mongo.getDB("testdb2");
DBCollection table = db.getCollection("user");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("_id", 0);
cursor = table.find(searchQuery);
DBObject resultElement = cursor.next();
List<DBObject> list = (List<DBObject>)resultElement.get("timestamp");
for(int i = 0; i < list.size(); i++){
System.out.println("indice: " + i + " contenuto: " + list.get(i));
}
}
catch(Exception e){
System.out.println("error : " + e.getMessage());
System.out.println("error : " + e.getCause());
}
finally{
cursor.close();
}
對不起,我的英語,謝謝你的幫助。
你試過了嗎? 'Date date =(Date)list.get(i);'Mongo java驅動程序將mongo時間戳類型映射爲java.util.Date類型。您可以在Mongo 3.x驅動程序版本中使用新的'Document'和'MongoCollection' api類型安全變體。 – Veeram
我誠實地嘗試了整數,因爲我需要用於其他數組,因爲我甚至無法施放那些讓我感覺非常不舒服的因此我沒有嘗試時間戳。我現在試了一下,它的工作原理,現在我不得不瞭解如何將其他數組轉換爲整數。你解決了我一半的問題。謝謝。 – Ennio