ฉันเพิ่งเริ่มต้นด้วย MongoDB และสิ่งหนึ่งที่ฉันสังเกตเห็นคือมันใช้BSONเพื่อเก็บข้อมูลภายใน อย่างไรก็ตามเอกสารไม่ชัดเจนว่า BSON คืออะไรและใช้ใน MongoDB อย่างไร มีใครช่วยอธิบายให้ฉันหน่อยได้ไหม
ฉันเพิ่งเริ่มต้นด้วย MongoDB และสิ่งหนึ่งที่ฉันสังเกตเห็นคือมันใช้BSONเพื่อเก็บข้อมูลภายใน อย่างไรก็ตามเอกสารไม่ชัดเจนว่า BSON คืออะไรและใช้ใน MongoDB อย่างไร มีใครช่วยอธิบายให้ฉันหน่อยได้ไหม
คำตอบ:
BSONเป็นการเข้ารหัสแบบไบนารีของเอกสารที่เหมือนกับ JSON ที่ MongoDB ใช้เมื่อจัดเก็บเอกสารในคอลเลกชัน เพิ่มการรองรับประเภทข้อมูลเช่นวันที่และไบนารีที่ไม่รองรับใน JSON
ในทางปฏิบัติคุณไม่จำเป็นต้องรู้มากเกี่ยวกับ BSON เมื่อทำงานกับ MongoDB คุณเพียงแค่ต้องใช้ภาษาท้องถิ่นของคุณและประเภทที่ให้มา (เช่น ObjectId) ของไดรเวอร์เมื่อสร้างเอกสารและพวกเขาจะถูกแมปเข้าสู่ ประเภท BSON ที่เหมาะสมโดยไดรเวอร์
อะไรBSON ?
BSON [bee · sahn], ย่อมาจาก Binary JSON เป็นเลขลำดับต่อเนื่องที่เข้ารหัสแบบไบนารีของเอกสารที่เหมือนกับ JSON
มันแตกต่างจากJSONอย่างไร
BSON ได้รับการออกแบบให้มีประสิทธิภาพในอวกาศ แต่ในบางกรณีอาจไม่ได้ประสิทธิภาพมากกว่า JSON ในบางกรณี BSON ใช้พื้นที่มากกว่า JSON เหตุผลนี้เป็นอีกหนึ่งเป้าหมายการออกแบบของ BSON นั่นคือการสำรวจเส้นทางได้ BSON เพิ่มข้อมูล "พิเศษ" ลงในเอกสารเช่นความยาวของสตริงและ subobjects ทำให้การสำรวจเส้นทางเร็วขึ้น
BSON ยังได้รับการออกแบบให้เข้ารหัสและถอดรหัสได้อย่างรวดเร็ว ตัวอย่างเช่นจำนวนเต็มจะถูกเก็บไว้เป็นจำนวนเต็ม 32 บิต (หรือ 64) ดังนั้นพวกเขาจึงไม่จำเป็นต้องแยกวิเคราะห์จากข้อความ สิ่งนี้ใช้พื้นที่มากกว่า JSON สำหรับจำนวนเต็มขนาดเล็ก แต่เร็วกว่าในการแยกวิเคราะห์
นอกจากความกะทัดรัดแล้ว BSON ยังเพิ่มประเภทข้อมูลเพิ่มเติมที่ไม่สามารถใช้งานได้ใน JSON โดยเฉพาะชนิดข้อมูลBinDataและDate
ที่มา: http://bsonspec.org/
MongoDB แสดงให้เห็นถึงเอกสาร JSON ในรูปแบบไบนารีเข้ารหัสซึ่งเรียกว่า BSON เบื้องหลัง BSON ขยายรูปแบบ JSON เพื่อให้ประเภทข้อมูลเพิ่มเติมและมีประสิทธิภาพสำหรับการเข้ารหัสและถอดรหัสภายในภาษาต่าง ๆ
MongoDB หมายถึงเอกสาร JSONในรูปแบบไบนารีเข้ารหัสเพื่อให้เราเรียกมันว่าBSON เบื้องหลัง
BSON ขยายรุ่น JSON เพื่อให้ประเภทข้อมูลเพิ่มเติมเช่นวันที่และไบนารีซึ่งไม่ได้รับการสนับสนุนใน JSONยังมีฟิลด์ที่สั่งซื้อเพื่อให้มีประสิทธิภาพสำหรับการเข้ารหัสและถอดรหัสภายในภาษาต่าง ๆ
อีกนัยหนึ่งเราสามารถพูดได้ว่า BSON นั้นเป็นเพียง JSON แบบไบนารี (เซ็ตของ JSON ที่มีชนิดข้อมูลเพิ่มเติมบางส่วนซึ่งเป็นอาร์เรย์ไบนารี่ไบนารี่ที่สำคัญที่สุด)
Mongodb ใช้เป็นรูปแบบการทำให้เป็นอันดับของ JSONรวมกับรูปแบบการเข้ารหัสสำหรับการจัดเก็บและการเข้าถึงเอกสารรูปแบบการเข้ารหัสสำหรับการจัดเก็บและการเข้าถึงเอกสารเพียงแค่เราบอกได้ว่า BSON เป็นรูปแบบการเข้ารหัสแบบไบนารีสำหรับข้อมูล JSON
สำหรับบทความ mongoDB เพิ่มเติม: https://om9x.com/blog/bson-vs-json/
โดยใช้การเข้ารหัส BSON ที่ด้านบนของ JSON, MongoDB ได้รับความสามารถในการสร้างดัชนีที่ด้านบนของค่าที่อยู่ภายในเอกสาร JSON ในรูปแบบดิบ สิ่งนี้ช่วยในการรันเคียวรีการวิเคราะห์ที่มีประสิทธิภาพเนื่องจากระบบ NoSQL เป็นที่รู้จักกันว่าไม่มีการสนับสนุนสำหรับดัชนี
บทความสั้น ๆ นี้ให้คำอธิบายที่ดีเกี่ยวกับ BSON และ JSON: มันพูดถึงปัญหาบางอย่างกับ JSON ทำไม BSON ถูกประดิษฐ์ขึ้นมาปัญหาอะไรที่แก้ได้เมื่อเทียบกับ JSON และมันมีประโยชน์กับคุณอย่างไร
https://www.compose.com/articles/from-json-to-bson-and-back/
ในกรณีการใช้งานของฉันบทความนั้นบอกฉันว่าการทำให้เป็นอันดับต่อ JSON จะทำงานได้สำหรับฉันและฉันไม่จำเป็นต้องทำให้เป็นอนุกรมกับ BSON