2014-09-12 142 views
0

我正在閱讀java代碼中的mongo集合。當我嘗試讀取_id值,我得到以下幾點:從Java代碼jsonObject.get("_id")mongodb如何將_id轉換爲JAVA中的字符串

{"$oid":"541333629520f6e05b0cb410"} 

我讀書等。我期待的是這樣的:"_id" : "541333629520f6e05b0cb410"

在這裏,我正在尋找一種方式,以便我可以在一個操作中獲得_id作爲字符串。

到目前爲止,我一直在嘗試以下操作:

 JSONObject idObj = (JSONObject)JSONObj.get("_id"); 
     ObjectId objectId = (ObjectId) idObj.get("$oid"); 
+1

_id是類型的ObjectId的。 ObjectId具有toString。 http://docs.mongodb.org/manual/reference/method/ObjectId.toString/ – 2014-09-12 19:07:40

+0

或者只使用'$ oid'的值。 – 2014-09-12 19:34:18

+0

擴展@Jack的評論:[閱讀API文檔](http://api.mongodb.org/java/current/org/bson/types/ObjectId.html)通常很快解決了這類問題。 – 2014-09-12 19:48:47

回答

1

解決方法使用下面的代碼片斷這個問題:

 JSONObject idObj = (JSONObject)obj.get("_id"); 
     String strID = (String) idObj.get("$oid"); 

可能有一些其他的方式以更好的方式來做到這一點。

1

這爲我工作:

String objectId = (String) result.get("_id.$oid"); 

也許有更好的方法來做到這一點。請讓我知道這對你有沒有用。

乾杯!

1

使用MongoDb驅動程序版本3和使用Document對象。

 Document temp = hwCursor.next(); 
     temp.getObjectId("_id").toString(); 

temp.getObjectId("_id").toHexString(); 
相關問題