2017-09-13 98 views
3

您好我需要將Mongo文檔轉換爲DBObject(BasicDBObject)。Mongo將文檔轉換爲DBObject

我使用GridFS將文件上傳到mongo,我想設置元數據,這是我在文檔中獲取的。我知道Document與DBObject幾乎相同。我知道我可以做這樣的事情:

Document doc = new Document(); 
BasicDBObject.parse(doc.toJson()); 

但是這不是不必要的性能重嗎?

gridFS方法setMetaData()只接受DBObject所以我必須將其轉換。

有沒有更好的方式來做到這一點,而不是把它轉換成字符串和回來?

+0

*不是不必要地表現沉重*你爲什麼這麼相信? – nullpointer

+0

這實際上有點奇怪,似乎更多的是這種類型在這裏沒有更新的監督。然而,簡單的答案當然只是一個'Map',就像其他行爲一樣。 –

+0

好吧,maybye其表現不重,但至少對我來說,將它轉換爲絃樂螞蟻而不是後退似乎毫無意義。 –

回答

4

你在這裏是一種微觀優化。

然而,由於這兩個類是地圖的實現,你可以做:

Document document = new Document(); 
BasicDBObject basicDBObject = new BasicDBObject(document); 

這在內部做了Map#putAll的操作,使文檔結構圖的所有條目到BasicDbObject地圖。