Hướng dẫn why does mongodb use bson and json? - tại sao mongodb sử dụng bson và json?

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.

byte1 byte (8-bit)
Int324 byte (số nguyên có chữ ký 32 bit, bổ sung của Two)
Int648 byte (số nguyên có chữ ký 64 bit, bổ sung của Two)
Uint648 byte (số nguyên không dấu 64 bit)
kép8 byte (64 bit IEEE 754-2008 Dao nổi nhị phân)
Decimal12816 byte (điểm nổi 128 bit IEEE 754-2008)
ngày8 byte (số nguyên 64 bit)
ID đối tượng12 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ảngLư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ìnhCá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ốcJSON 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 gianDữ 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ápJSON 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ệuJSON 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')

Sẵn sàng để bắt đầu?

Khởi động một cụm mới hoặc di chuyển đến MongoDB Atlas với thời gian chết bằng không.

Câu hỏi thường gặp có liên quan

Chuỗi BSON có thể là NULL không?

Kiểu dữ liệu BSON là gì?

BSON trông như thế nào?

Tại sao MongoDB sử dụng BSON chứ không phải JSON?

Tại sao MongoDB sử dụng BSON thay vì JSON kiểm tra tất cả những gì áp dụng?

Tại sao MongoDB sử dụng BSON chứ không phải JSON?BSON bao gồm siêu dữ liệu để mô tả một tài liệu/đối tượng và BSON mở rộng mô hình JSON để cung cấp các loại dữ liệu bổ sung, các trường được đặt hàng và hiệu quả để mã hóa và giải mã trong các ngôn ngữ khác nhau, để làm cho nó đơn giản.

MongoDB có sử dụng JSON hay BSON không?

Dữ liệu trong MongoDB được lưu trữ ở định dạng BSON.JSON đòi hỏi ít không gian hơn so với BSON.

Một số lý do để sử dụng BSON trên JSON là gì?

BSON cung cấp thêm các kiểu dữ liệu qua dữ liệu JSON.Cơ sở dữ liệu như Anydb, Redis, vv lưu trữ thông tin vào định dạng JSON.MongoDB lưu trữ dữ liệu ở định dạng BSON.JSON sử dụng ít không gian hơn so với BSON.. Database like AnyDB, redis etc stores information into JSON format. MongoDB stores data in BSON format. JSON uses less space in comparison to BSON.

BSON có tốt hơn JSON không?

BSON [BEE · SAHN], viết tắt của JSON nhị phân, là một bài tuần tự hóa được mã hóa nhị phân của các tài liệu giống JSON.Nó khác với JSON như thế nào?BSON được thiết kế để có hiệu quả trong không gian, nhưng trong một số trường hợp không hiệu quả hơn nhiều so với JSON.Trong một số trường hợp, BSON sử dụng nhiều không gian hơn JSON.BSON is designed to be efficient in space, but in some cases is not much more efficient than JSON. In some cases BSON uses even more space than JSON.