बीएसओएन

बीएसओएन कंप्यूटर डेटा इंटरचेंज प्रारूप है। बीएसओएन नाम जेएसओएन शब्द पर आधारित है और इसका कारण बाइनरी जेएसओएन है। यह साहचर्य सरणियों (नाम-मूल्य जोड़े के रूप में भी जाना जाता है), पूर्णांक अनुक्रमित सरणियों और मौलिक स्केलर प्रकारों के सूट सहित सरल या जटिल डेटा संरचनाओं का प्रतिनिधित्व करने के लिए द्विआधारी रूप है। बीएसओएन की शुरुआत 2009 में मोंगोडीबी में हुई थी। कई स्केलर डेटा प्रकार मोंगोडीबी के लिए विशिष्ट रुचि के हैं और प्रारूप का उपयोग मोंगोडीबी डेटाबेस के लिए डेटा स्टोरेज और नेटवर्क ट्रांसफर प्रारूप दोनों के रूप में किया जाता है, किन्तु इसे मोंगोडीबी के बाहर स्वतंत्र रूप से उपयोग किया जा सकता है। कार्यान्वयन विभिन्न भाषाओं में उपलब्ध हैं जैसे सी (प्रोग्रामिंग भाषा), सी++, सी शार्प (प्रोग्रामिंग भाषा) या सी, डी (प्रोग्रामिंग भाषा), डेल्फ़ी (आईडीई), एरलांग (प्रोग्रामिंग भाषा), गो (प्रोग्रामिंग भाषा), हास्केल (प्रोग्रामिंग भाषा), जावा (प्रोग्रामिंग भाषा), जावास्क्रिप्ट, जूलिया (प्रोग्रामिंग भाषा), लुआ (प्रोग्रामिंग भाषा), ओकैमल, पर्ल, पीएचपी, पायथन (प्रोग्रामिंग भाषा), रूबी (प्रोग्रामिंग भाषा), रस्ट (प्रोग्रामिंग भाषा), स्काला (प्रोग्रामिंग भाषा), स्मॉलटॉक, और स्विफ्ट (प्रोग्रामिंग भाषा) है।

डेटा प्रकार और वाक्यविन्यास
बीएसओएन का प्रकाशित विनिर्देश है। संरचना में सबसे ऊपरी तत्व बीएसओएन ऑब्जेक्ट प्रकार का होना चाहिए इसमें 1 या अधिक तत्व होते हैं, जहां तत्व में फ़ील्ड नाम, प्रकार और मान होता है। फ़ील्ड नाम स्ट्रिंग हैं. प्रकारों में सम्मिलित हैं:

डबल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप प्रारूप (64-बिट आईईईई 754 फ़्लोटिंग पॉइंट नंबर) जेएसओएन के लिए महत्वपूर्ण अंतर यह है कि बीएसओएन में ऐसे प्रकार होते हैं जो जेएसओएन में उपस्थित नहीं होते हैं (उदाहरण के लिए डेटाटाइम और बाइट सरणी) और सार्वभौमिक संख्या प्रकार के अतिरिक्त कई संख्यात्मक प्रकारों के लिए टाइप-स्ट्रिक्ट हैंडलिंग प्रदान करता है। उन स्थितियों के लिए जहां इन अतिरिक्त प्रकारों को पाठ्य विधि से प्रस्तुत करने की आवश्यकता होती है, मोंगोडीबी का विस्तारित जेएसओएन प्रारूप उपयोग किया जा सकता है।
 * यूनिकोड स्ट्रिंग (यूटीएफ-8 एन्कोडिंग का उपयोग करके)
 * 32 बिट पूर्णांक
 * 64 बिट पूर्णांक
 * दशमलव128 फ़्लोटिंग-पॉइंट प्रारूप (128-बिट आईईईई 754-2008 फ़्लोटिंग पॉइंट नंबर; बाइनरी पूर्णांक दशमलव (बीआईडी) संस्करण), दशमलव-स्थान संवेदनशील वित्तीय डेटा और स्पष्टता के 34 दशमलव अंकों के साथ इच्छानुसार विधि से स्पष्ट संख्याओं के लिए वाहक के रूप में उपयुक्त, a अधिकतम मान लगभग 106145 का उपयोग किया जाता है
 * समय क्षेत्र के बिना डेटाटाइम (यूनिक्स युग के बाद से मिलीसेकंड की लंबी पूर्णांक संख्या)
 * बाइट सरणी (इच्छानुसार बाइनरी डेटा के लिए)
 * बूलियन डेटाटाइप ( और  )
 * निरर्थक प्रकार
 * बीएसओएन ऑब्जेक्ट
 * बीएसओएन सरणी
 * जावास्क्रिप्ट कोड
 * एमडी5 बाइनरी डेटा
 * नियमित अभिव्यक्ति (पर्ल संगत रेगुलर एक्सप्रेशन (पीसीआरई) संस्करण 8.41 यूटीएफ-8 समर्थन के साथ)

दक्षता
जेएसओएन की तुलना में, बीएसओएन को स्टोरेज स्पेस और स्कैन-स्पीड दोनों में कुशल होने के लिए डिज़ाइन किया गया है। बीएसओएन दस्तावेज़ में बड़े तत्वों को स्कैनिंग की सुविधा के लिए लंबाई फ़ील्ड के साथ उपसर्ग किया जाता है। कुछ स्थितियों में, लंबाई उपसर्गों और स्पष्ट सरणी सूचकांकों के कारण बीएसओएन जेएसओएन की तुलना में अधिक स्थान का उपयोग करता है।

उदाहरण
एक दस्तावेज़ जैसे {"hello": "world"} को इस प्रकार संग्रहित किया जाता है:

यह भी देखें

 * डेटा क्रमांकन प्रारूपों की तुलना
 * जेएसओएन
 * सीबीओआर
 * स्माइल (डेटा इंटरचेंज फॉर्मेट) (बाइनरी जेएसओएन)
 * उबजसन
 * प्रोटोकॉल बफ़र्स
 * क्रिया संदेश प्रारूप
 * अपाचे थ्रिफ्ट
 * संदेशपैक
 * दस्तावेज़-उन्मुख डेटाबेस
 * मोंगोडीबी
 * सार सिंटेक्स नोटेशन वन (एएसएन.1)
 * वायरलेस बाइनरी एक्सएमएल (डब्ल्यूबीएक्सएमएल)
 * कुशल एक्सएमएल इंटरचेंज

बाहरी संबंध

 * bsondump tool included with मोंगोडीबी
 * bsondump tool included with मोंगोडीबी