बीएसओएन

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

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

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

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

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

 \x16\x00\x00\x00 // कुल दस्तावेज़ आकार \x02 // 0x02 = स्ट्रिंग टाइप करें नमस्ते\x00 // फ़ील्ड का नाम \x06\x00\x00\x00world\x00 // फ़ील्ड मान (मान का आकार, मान, शून्य टर्मिनेटर) \x00 // 0x00 = EOO टाइप करें ('ऑब्जेक्ट का अंत') 

यह भी देखें

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

बाहरी संबंध

 * bsondump tool included with MongoDB
 * bsondump tool included with MongoDB