2013-08-23 2 views
2

Мне нужно использовать диск MongoDB Java, так как мне нужно использовать драйвер в Matlab.Драйвер Java MongoDB - Типы объектов

На данный момент у меня есть следующая проблема. Я получаю свой объект 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 3.x должен иметь лучшую поддержку для этого.

Смежные вопросы