Apa itu BSON dan apa bedanya dengan JSON?

158

Saya baru memulai dengan MongoDB dan salah satu hal yang saya perhatikan adalah menggunakan BSON untuk menyimpan data secara internal. Namun dokumentasinya tidak begitu jelas tentang apa itu BSON dan bagaimana BSON digunakan. Bisakah seseorang menjelaskannya kepada saya?

Akshat Jiwan Sharma
sumber
Halo Ivan, Lihat tautan ini, ini berisi perbandingan mendalam antara JSON dan BSON Referensi: educba.com/json-vs-bson
Nuwa
@Nuwa Ivan tidak mengajukan pertanyaan, itu adalah Akshat
UuDdLrLrSs

Jawaban:

155

BSON adalah pengodean biner dari dokumen seperti JSON yang digunakan MongoDB saat menyimpan dokumen dalam koleksi. Itu menambahkan dukungan untuk tipe data seperti Tanggal dan biner yang tidak didukung di JSON.

Dalam praktiknya, Anda tidak perlu tahu banyak tentang BSON ketika bekerja dengan MongoDB, Anda hanya perlu menggunakan jenis asli bahasa Anda dan jenis yang disediakan (misalnya ObjectId) dari pengandar ketika membangun dokumen dan mereka akan dipetakan ke dalam tipe BSON yang sesuai oleh pengemudi.

JohnnyHK
sumber
2
Jadi jika mongoDb menyimpan dokumen sebagai bson, apa jenis yang dikembalikan ketika kita meminta basis data? Apakah mereka dikembalikan sebagai json? Atau bson dikembalikan seperti apa adanya?
Akshat Jiwan Sharma
13
Tidak, driver MongoDB untuk bahasa Anda menangani konversi dokumen menjadi tipe data yang sesuai untuk bahasa Anda. Tipe data asli digunakan sebanyak mungkin.
JohnnyHK
2
Apakah itu berarti, jika saya mengambil data dari dokumen BSON menggunakan Javascript , saya tidak akan mendapatkan perbedaan tipe data karena saya akan dapatkan ketika saya mengambil menggunakan C / C ++ yaitu angka akan diperlakukan sebagai bilangan bulat jika tidak memiliki desimal?
abhisekp
1
@abhisekp berdasarkan penjelasan JohnnyHK dan pengalaman saya baru-baru ini, saya pikir apa yang Anda katakan itu benar.
nxmohamad
Apakah BSON akan mengembalikan tipe data yang tepat dari bidang kolom? Atau mengembalikannya sebagai String untuk semua jenis?
mRhNs13
45
  • Apa itu BSON ?

    BSON [bee · sahn], kependekan dari Binary JSON, adalah serialisasi yang disandikan biner dari dokumen yang mirip JSON.

  • Apa bedanya dengan JSON ?

    BSON dirancang agar efisien dalam ruang, tetapi dalam beberapa kasus tidak jauh lebih efisien daripada JSON. Dalam beberapa kasus BSON bahkan menggunakan lebih banyak ruang daripada JSON. Alasan untuk ini adalah tujuan desain BSON yang lain: traversability. BSON menambahkan beberapa informasi "ekstra" ke dokumen, seperti panjang string dan sub-objek. Ini membuat traversal lebih cepat.

    BSON juga dirancang agar cepat dikodekan dan didekodekan. Misalnya, bilangan bulat disimpan sebagai 32 (atau 64) bilangan bulat, sehingga tidak perlu diuraikan ke dan dari teks. Ini menggunakan lebih banyak ruang daripada JSON untuk bilangan bulat kecil, tetapi jauh lebih cepat untuk diuraikan.

    Selain kekompakan, BSON menambahkan tipe data tambahan yang tidak tersedia di JSON, terutama tipe data BinData dan Date .

Sumber: http://bsonspec.org/

Mehdi Raash
sumber
apakah ini sama dengan tipe data jsonb yang merupakan singkatan dari data JSON biner, didekomposisi dalam postgresql?
PirateApp
13

MongoDB mewakili dokumen JSON dalam format berkode biner yang disebut BSON di belakang layar. BSON memperluas model JSON untuk menyediakan tipe data tambahan dan menjadi efisien untuk encoding dan decoding dalam berbagai bahasa.

codergirl22
sumber
12

MongoDB mewakili dokumen JSON dalam format yang dikodekan biner jadi kami menyebutnya BSON di belakang layar .

BSON memperluas model JSON untuk menyediakan tipe data tambahan seperti Tanggal dan biner yang tidak didukung di JSON juga menyediakan bidang yang dipesan agar efisien untuk penyandian dan pengodean ulang dalam bahasa yang berbeda. 

Dengan kata lain kita dapat mengatakan bahwa   BSON hanyalah JSON biner  (superset dari JSON dengan beberapa tipe data lainnya, yang terpenting adalah array byte biner).

Mongodb menggunakan sebagai format serialisasi JSON termasuk dengan format penyandian untuk menyimpan dan mengakses dokumen . cukup kita dapat mengatakan BSON adalah format biner untuk data JSON.

untuk lebih banyak artikel mongoDB: https://om9x.com/blog/bson-vs-json/

Avinash Maurya
sumber
tautannya rusak
PlsWork
5

Dengan menggunakan pengkodean BSON di atas JSON, MongoDB mendapatkan kemampuan membuat indeks di atas nilai-nilai yang berada di dalam dokumen JSON dalam format mentah. Ini membantu dalam menjalankan kueri analitik yang efisien karena sistem NoSQL dikenal tidak memiliki dukungan untuk Indeks.

Anupam Mahapatra
sumber
1

Artikel yang relatif singkat ini memberikan penjelasan yang cukup bagus tentang BSON dan JSON: Artikel ini membahas tentang beberapa masalah dengan JSON, mengapa BSON ditemukan, masalah apa yang dipecahkannya dibandingkan dengan JSON dan bagaimana hal itu dapat menguntungkan Anda.

https://www.compose.com/articles/from-json-to-bson-and-back/

Dalam kasus penggunaan saya, artikel itu memberi tahu saya bahwa serialisasi ke JSON akan bekerja untuk saya dan saya tidak perlu membuat serial ke BSON

Bulu anjing
sumber