BSON là gì?
BSON là một ký hiệu đối tượng JavaScript được mã hóa nhị phân [JSON] ký hiệu đối tượng văn bản được sử dụng rộng rãi để truyền và lưu trữ dữ liệu trên các ứng dụng dựa trên web. JSON dễ hiểu hơn vì nó có thể đọc được, nhưng so với BSON, nó hỗ trợ ít loại dữ liệu hơn. BSON mã hóa thông tin loại và độ dài, cũng giúp máy dễ phân tích hơn.
{"hello": "world"} →
\x16\x00\x00\x00 // total document size
\x02 // 0x02 = type String
hello\x00 // field name
\x06\x00\x00\x00world\x00 // field value
\x00 // 0x00 = type EOO ['end of object']
Giống như JSON, BSON hỗ trợ các ngôn ngữ lập trình khác nhau như C, C ++, C#, Java, JavaScript, PHP, Python, Ruby và Swift.
BSON đại diện cho cái gì?
BSON là viết tắt của ký hiệu đối tượng JavaScript nhị phân. Đó là một tuần tự hóa được mã hóa nhị phân của các tài liệu JSON. BSON đã được mở rộng để thêm một số loại dữ liệu không phải là JSON tùy chọn, như ngày và dữ liệu nhị phân.
BSON có thể được so sánh với các định dạng nhị phân khác, như bộ đệm giao thức. Sự khác biệt lớn hơn là BSON là "không có lược đồ" hơn so với bộ đệm giao thức, mang lại lợi thế về tính linh hoạt và nhược điểm nhẹ của hiệu quả không gian.
Thông số kỹ thuật của BSON và các loại BSON
BSON Đặc điểm kỹ thuật phiên bản 1.1 được xuất bản tại bsonspec.org. Phần tử trên cùng trong cấu trúc phải là của đối tượng loại BSON và phải chứa một hoặc nhiều phần tử, trong đó một phần tử có thể là tên trường [chuỗi], loại hoặc giá trị. Sau đây là một số loại bao gồm trong BSON.
byte | 1 byte [8-bit] |
Int32 | 4 byte [số nguyên có chữ ký 32 bit, bổ sung của Two] |
Int64 | 8 byte [số nguyên có chữ ký 64 bit, bổ sung của Two] |
Uint64 | 8 byte [số nguyên không dấu 64 bit] |
kép | 8 byte [64 bit IEEE 754-2008 Dao nổi nhị phân] |
Decimal128 | 16 byte [điểm nổi 128 bit IEEE 754-2008] |
ngày | 8 byte [số nguyên 64 bit] |
ID đối tượng | 12 byte [giá trị dấu thời gian 4 byte, giá trị ngẫu nhiên 5 byte và bộ đếm tăng 3 byte] |
mảng | Lưu trữ dựa trên dữ liệu [một mảng byte sử dụng 1 byte, một mảng ngắn sử dụng 2 byte và một mảng số nguyên sử dụng 4 byte] |
Để tìm hiểu thêm về thông số kỹ thuật của BSON, hãy truy cập tài liệu BSON.
BSON khác với JSON như thế nào?
Json | BSON | |
Loại hình | Các tập tin JSON được viết ở định dạng văn bản. | Các tập tin BSON được viết bằng nhị phân. |
Tốc độ, vận tốc | JSON nhanh để đọc nhưng chậm hơn để xây dựng. | BSON chậm đọc nhưng nhanh hơn để xây dựng và quét. |
Không gian | Dữ liệu JSON nhỏ hơn một chút về kích thước byte. | Dữ liệu BSON lớn hơn một chút về kích thước byte. |
Mã hóa và giải mã | Chúng tôi có thể gửi JSON qua API mà không cần mã hóa và giải mã. | Các tệp BSON được mã hóa trước khi lưu trữ và giải mã trước khi hiển thị. |
Phân tích cú pháp | JSON là một định dạng có thể đọc được mà không yêu cầu phân tích cú pháp. | BSON cần được phân tích cú pháp vì chúng được tạo ra bằng máy và không thể đọc được bằng máy. |
Loại dữ liệu | JSON có một tập hợp các loại dữ liệu cụ thể, Boolean, Boolean, số cho các loại dữ liệu số, mảng, đối tượng và null. | Không giống như JSON, BSON cung cấp các loại dữ liệu bổ sung như bindata cho dữ liệu nhị phân, thập phân128 cho số. |
Cách sử dụng | Được sử dụng để gửi dữ liệu qua mạng [chủ yếu thông qua API]. | Cơ sở dữ liệu sử dụng BSON để lưu trữ dữ liệu. |
Để biết thêm về sự khác biệt giữa BSON và JSON, hãy ghé thăm JSON và BSON.
Ưu điểm của BSON
Ba đặc điểm sau đây làm cho BSON có lợi khi sử dụng.
Nhẹ và đi qua
BSON rất nhẹ: Điều này giúp một lượng lớn dữ liệu được lưu trữ trong định dạng tệp BSON. Ngoài ra, các tệp BSON dễ dàng lưu trữ và gửi qua mạng, làm cho chúng hoàn hảo để lưu trữ và gửi dữ liệu.
Có hiệu quả
BSON được tạo ra để lưu trữ không gian và quét hiệu quả: Trong một tài liệu BSON, các yếu tố lớn được đặt trước với một trường chiều dài. Các tài liệu trong BSON sử dụng nhiều không gian hơn JSON do tiền tố dài và chỉ số mảng rõ ràng, nhưng nhờ các tiền tố đó, chúng tôi có thể quét và truy vấn nhanh hơn nhiều. Các tiền tố giúp dễ dàng so sánh và tính toán trực tiếp trên dữ liệu, đơn giản hóa việc tiêu thụ mã ứng dụng.
Xử lý các loại dữ liệu bổ sung
Không giống như trong JSON, bạn có thể tìm thấy các loại dữ liệu như Bindata, Minkey, MaxKey, Dữ liệu nhị phân, ObjectID, Biểu thức chính quy, JavaScript, Decimal128 và ngày cho DateTime trong BSON. Những loại dữ liệu này là rất quan trọng khi làm việc với các chương trình đặc biệt.
Ví dụ: khi làm việc với dữ liệu hệ thống tài chính, bạn có thể sử dụng BSON từ Decimal128 cho 128 bit đại diện thập phân chính xác cao.
Nhiều hệ thống hiện đại sử dụng số học nổi dựa trên nhị phân để thể hiện các phân số thập phân chính xác thông qua các loại dữ liệu nổi và kép. Những loại dữ liệu này cung cấp xấp xỉ nhưng không phải là giá trị chính xác. Sử dụng BSON trong những trường hợp như vậy cho bạn độ chính xác cao.
Truy cập các loại dữ liệu BSON để tìm danh sách các kiểu dữ liệu dành riêng cho BSON nhưng không phải là JSON.
Cách chuyển đổi JSON thành BSON
Bạn có thể sử dụng các bộ chuyển đổi khác nhau giữa các định dạng JSON và BSON. Một ví dụ như vậy là OnlinejSontools. Một tìm kiếm nhanh trên Google sẽ cung cấp cho bạn nhiều bộ chuyển đổi trực tuyến khác nhau để dễ dàng thay đổi định dạng JSON thành định dạng BSON và ngược lại.
BSON là định dạng được sử dụng cả để lưu trữ dữ liệu và truyền mạng trong MongoDB. Sau khi lưu trữ dữ liệu trong MongoDB, bạn có thể muốn lấy lại dữ liệu của mình dưới dạng JSON, trong số nhiều định dạng khác. Khi bạn muốn xuất các tệp của mình dưới dạng JSON, bạn có thể sử dụng công cụ cơ sở dữ liệu MongoDB, bsondump
, để chuyển đổi các tài liệu BSON thành JSON. Để tìm hiểu làm thế nào để xuất các tài liệu BSON dưới dạng Jsons trong MongoDB, hãy đọc bên dưới.
Cách nhập và xuất tệp BSON trong MongoDB
Có rất nhiều người xem văn bản BSON trực tuyến có khả năng mở các tệp BSON. Nếu bạn có một bộ lớn các tệp BSON, bạn có thể nhập các tệp BSON vào MongoDB để xem nội dung của tệp từ đó.
Đầu tiên, bạn cần cài đặt các công cụ cơ sở dữ liệu MongoDB. Công cụ cơ sở dữ liệu MongoDB là một bộ tiện ích dòng lệnh để làm việc với MongoDB. Bạn có thể tìm hiểu về việc cài đặt chúng từ tài liệu này.
Sau khi cài đặt các công cụ đó, bạn có thể dễ dàng nhập và xuất các tệp BSON bằng MongoDB bằng cách sử dụng một vài lệnh đơn giản. Lệnh mongorestore
tải dữ liệu từ kết xuất cơ sở dữ liệu nhị phân được tạo bởi
mongorestore -d db_name /path/file.bson
0 hoặc đầu vào tiêu chuẩn vào một thể hiện mongorestore -d db_name /path/file.bson
1 hoặc mongorestore -d db_name /path/file.bson
2.Để nhập tệp .bson, hãy chạy lệnh sau trên dòng lệnh hệ thống của bạn..bson file, run the following command on your system command line.
mongorestore -d db_name /path/file.bson
Ở đây, db_name là tên của cơ sở dữ liệu bạn muốn nhập. Đường dẫn biểu thị đường dẫn tuyệt đối của tệp .bson của bạn, trong khi tệp đại diện cho tên tệp BSON.db_name is the name of the database you want to import. Path denotes the absolute path of your .bson file, while file represents the BSON file’s name.
Đối với một bộ sưu tập duy nhất, hãy chạy lệnh sau trên dòng lệnh hệ thống của bạn.
mongorestore --drop -d db_name -c collection_name /path/file.bson
Ở đây, Collection_Name xác định tên của bộ sưu tập mà bạn muốn nhập., collection_name defines the name of the collection that you want to import.
Để khôi phục thư mục hoàn chỉnh được xuất bởi
mongorestore -d db_name /path/file.bson
0.mongorestore -d db_name /path/
Để xuất các tài liệu BSON, hãy sử dụng công cụ cơ sở dữ liệu bsondump
.
Chạy lệnh sau từ dòng lệnh hệ thống để xuất bộ sưu tập dưới dạng BSON.
bsondump collection.bson
Bạn có thể sử dụng tùy chọn --OutFile bằng cách chạy lệnh sau từ dòng lệnh hệ thống để xuất bộ sưu tập dưới dạng JSON.
bsondump --outFile=collection.json collection.bson
Bạn có thể kiểm tra tài liệu chính thức cho Bsondump để tìm hiểu cách cài đặt Bsondump để chuyển đổi các tệp BSON sang các định dạng có thể đọc được của con người, bao gồm cả JSON.
Trong trường hợp có vấn đề với ngôn ngữ lập trình, hãy chắc chắn cập nhật trình điều khiển MongoDB lên phiên bản hỗ trợ ngôn ngữ.
Ví dụ BSON: Cách BSON được lưu trữ trong cơ sở dữ liệu MongoDB
Hãy để lấy ví dụ về tài liệu JSON sau đây.
{
"hello" : "world"
}
Khi lưu trữ tài liệu JSON, nó sẽ được chuyển đổi thành phần sau.
\x16\x00\x00\x00 // total document size
\x02 // 0x02 = type String
hello\x00 // field name
\x06\x00\x00\x00world\x00 // field value [size of value, value, null terminator
\x00 // 0x00 = type EOO ['end of object']