Я пытаюсь понять реализацию BSON, используемую драйвером Java MongoDB (официальный асинхронный, в случае, если это важно).
Однако я полностью застрял в классах, представляющих документы BSON. Я концентрируюсь на "нормальных", игнорируя теперь такие функции, как ленивая конструкция. До сих пор я нашел:
- BasicBSONObject
- BsonDocument
- Документ
- BSONObject, интерфейс, реализованный BasicBSONObject, но не остальные
Я также обнаружил, что драйвер MongoDB по умолчанию возвращает свои результаты как экземпляры документа и может быть изменен для возврата BsonDocument. OTOH, класс JSON хочет вернуть DBObject, который реализуется BasicDBObject, расширяет BasicBSONObject.
Как связаны эти классы? Какой из них следует использовать в этом случае?
При написании кода, который принимает документ BSON в качестве параметра или возвращает его, какой тип я должен использовать? На самом деле это вопрос, который меня больше всего интересует, но указанные ограничения, по-видимому, противоречат.