2013-08-23 128 views
2

我需要使用MongoDB Java驅動器,因爲我需要在Matlab中使用驅動程序。MongoDB Java驅動程序 - 對象類型

目前我有以下問題。我從數據庫中獲得我的BSON對象,現在我需要將BSON樹轉換爲Matlab結構。我的問題是BSONObject或BasisBSONObject類沒有函數來檢索特定BSON對象(ARRAY,OBJECTID,...)的類型。在java驅動程序中有一個名爲BSON的類,它定義了我需要的值。但我不知道如何找出我的當前BSON對象是什麼類型。

C++驅動程序和C#驅動程序都有一個返回特定BSON元素類型的函數,但它在JAVA驅動程序中的位置。

歡迎任何建議。我在JAVA中並不完美,也許我沒有找到它的原因......?

+0

我不認爲它有這樣的類型。 BSONObject中的值有類型(你可以通過'get(String)'來檢索它們,而不是對象本身。 –

回答

1

爲什麼不能獲取對象並致電getClass()呢? myBSON.get("myKey").getClass()似乎就像調用一些不存在的myBSON.getTypeOf("myKey")方法一樣簡單,並且在API中也是冗餘的。

+0

感謝John,這個解決方案與C++和C#MongoDB驅動程序相比是一種「奇怪」,但在所有的getClass()都適用於我,以查明我的BSON元素是否爲「值」,「數組」,... – Thomas

0

通常我使用BSON < - > Java POJO映射庫,如Morphia或Spring-Data-Mongo。這些庫具有可以將mongo對象轉換爲類型安全對象的轉換器。

此外,我認爲Mongo 3.x驅動程序是假設有更好的支持。