मूल DBobject पदावनत नहीं है। BasicDBobject में एकमात्र पदावनत हिस्सा DBPointer
है क्लास और कुछ अन्य तरीके जैसे toString() and getId()
दस्तावेज़ लागू करता है Map<String, Object>
और बेसिक डीबी ऑब्जेक्ट की तुलना में लिखने के लिए कम कोड है
डीबीऑब्जेक्ट हालांकि नए अनुप्रयोगों के लिए अनुशंसित नहीं है, 2.x ड्राइवर श्रृंखला से अपग्रेड करने वाले BSON दस्तावेज़ों का प्रतिनिधित्व करने के लिए DBObject इंटरफ़ेस का उपयोग करना जारी रख सकते हैं। DBObject दस्तावेज़ के समान है जिसमें यह BSON मानों को ऑब्जेक्ट के रूप में दर्शाता है, लेकिन इसमें कुछ कमियाँ हैं जिन्हें दूर करना असंभव था:
-
यह एक वर्ग के बजाय एक इंटरफ़ेस है, इसलिए इसके एपीआई को बाइनरी संगतता को तोड़े बिना विस्तारित नहीं किया जा सकता है।
-
यह वास्तव में मानचित्र को लागू नहीं करता है।
-
क्योंकि यह एक इंटरफ़ेस है, एक अलग ठोस वर्ग जिसे BasicDBObject कहा जाता है, जो उस इंटरफ़ेस को लागू करता है, आवश्यक है
बसन इन सभी को एक साथ जोड़ने के लिए, ड्राइवर में एक छोटा लेकिन शक्तिशाली इंटरफ़ेस होता है जिसे Bson कहा जाता है। कोई भी वर्ग जो BSON दस्तावेज़ का प्रतिनिधित्व करता है, चाहे वह स्वयं ड्राइवर में शामिल हो या किसी तीसरे पक्ष से, इस इंटरफ़ेस को लागू कर सकता है और फिर उच्च-स्तरीय API में किसी भी स्थान पर उपयोग किया जा सकता है जहाँ BSON दस्तावेज़ की आवश्यकता होती है।