2013-08-23 129 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驱动程序是假设有更好的支持。