Основният DBobject не е остарял. Единствената отхвърлена част в BasicDBobject е DBPointer
клас и няколко други метода като toString() and getId()
Документът имплементира Map<String, Object>
и има по-малко код за писане в сравнение с основния DB обект
DBObject Въпреки че не се препоръчва за нови приложения, тези, които надграждат от серията драйвери 2.x, могат да продължат да използват интерфейса DBObject за представяне на BSON документи. DBObject е подобен на Document по това, че представя BSON стойности като Object, но има няколко недостатъка, които не могат да бъдат преодолени:
-
това е интерфейс, а не клас, така че неговият API не може да бъде разширен, без да се наруши двоичната съвместимост.
-
Всъщност не прилага Map.
-
Тъй като това е интерфейс, е необходим отделен конкретен клас, наречен BasicDBObject, който реализира този интерфейс
Bson За да свърже всичко това заедно, драйверът съдържа малък, но мощен интерфейс, наречен Bson. Всеки клас, който представлява BSON документ, независимо дали е включен в самия драйвер или от трета страна, може да имплементира този интерфейс и след това може да се използва на всяко място в API от високо ниво, където се изисква BSON документ.