Format Atlas

Bandingkan

BSON vs MessagePack

BSON dan MessagePack dapat mewakili data biner mirip dokumen, tetapi BSON adalah representasi dokumen bertipe yang terkait dengan MongoDB, sedangkan MessagePack adalah format serialisasi objek umum.

Format mana yang sebaiknya dipilih?

Gunakan BSON untuk dokumen MongoDB dan nilai khusus BSON seperti ObjectId serta tanggal. Pertimbangkan MessagePack untuk pertukaran objek ringkas di luar MongoDB dan sepakati tipe ekstensi serta dukungan penerima.

Cocok untuk BSON

Menserialisasi dokumen MongoDB · Bertukar dokumen antaralat yang mendukung BSON

  • Mempertahankan tipe seperti tanggal dan data biner
  • Menggunakan driver dan alat yang dapat membaca serta menulis BSON

Cocok untuk MessagePack

Menserialisasi data mirip JSON dalam bentuk biner · Bertukar data terstruktur antar aplikasi yang kompatibel

  • Mengodekan array, map, dan nilai dasar mirip JSON dalam bentuk biner
  • Bertukar nilai ekstensi dan timestamp antar pustaka yang kompatibel

Informasi dasar

ItemBSONMessagePack
Ekstensi.bson.msgpack, .mpk
Tipe MIMEapplication/bsonapplication/octet-stream
Penggunaan umumMenserialisasi dokumen MongoDB · Bertukar dokumen antaralat yang mendukung BSONMenserialisasi data mirip JSON dalam bentuk biner · Bertukar data terstruktur antar aplikasi yang kompatibel
Cara membukaBaca dengan mongorestore atau alat maupun pustaka yang mendukung BSON. Untuk memeriksa isinya, ubah BSON ke Extended JSON atau representasi lain yang mudah dibaca. Jangan mengedit file biner dengan editor teks.Baca dengan pustaka atau decoder yang mendukung MessagePack. Untuk memeriksa isinya, gunakan notasi diagnostik atau tampilan mirip JSON dan perhatikan cara data biner serta ekstensi ditampilkan.
Ekspor atau konversiSaat mengubah ke JSON, tanggal, ObjectId, dan nilai biner mungkin memerlukan notasi Extended JSON atau representasi khusus aplikasi karena JSON standar tidak memiliki tipe yang setara. Jika perlu konversi bolak-balik, pilih cara yang mempertahankan informasi tipe dan uji dengan data nyata.Saat mengonversi ke JSON, data biner dan ekstensi mungkin perlu diwakili sebagai array, string, atau pembungkus khusus alat karena JSON standar tidak memiliki tipe yang setara. Untuk konversi bolak-balik, uji tipe, rentang angka, timestamp, kunci map, dan ekstensi dengan data nyata.

Pilih menurut penggunaan

Mempertahankan tipe seperti tanggal dan data biner

Menserialisasi dokumen MongoDB · Bertukar dokumen antaralat yang mendukung BSON

BSON

Menggunakan driver dan alat yang dapat membaca serta menulis BSON

Menserialisasi dokumen MongoDB · Bertukar dokumen antaralat yang mendukung BSON

BSON

Mengodekan array, map, dan nilai dasar mirip JSON dalam bentuk biner

Menserialisasi data mirip JSON dalam bentuk biner · Bertukar data terstruktur antar aplikasi yang kompatibel

MessagePack

Bertukar nilai ekstensi dan timestamp antar pustaka yang kompatibel

Menserialisasi data mirip JSON dalam bentuk biner · Bertukar data terstruktur antar aplikasi yang kompatibel

MessagePack

Poin utama 1

BSON menetapkan dokumen dan array berprefiks panjang dengan tipe eksplisit seperti tanggal, ObjectId, dan Decimal128. MessagePack menyediakan map, array, angka, teks, biner, dan ekstensi yang ditentukan aplikasi.

Perbedaan lebih lanjut

Poin utama 2

BSON cocok dengan model dokumen dan alat MongoDB; MessagePack digunakan untuk serialisasi umum tanpa bergantung pada basis data tertentu.

Perbedaan lebih lanjut

Perbedaan lebih lanjut

Pilih BSON bila tipe dokumen kompatibel MongoDB penting; pilih MessagePack untuk protokol objek biner yang bebas dari basis data. Petakan tanggal, lebar integer, desimal, ObjectId, dan ekstensi sebelum mengonversi, lalu uji bolak-balik.

  • Keduanya memakai pengodean biner, tetapi struktur dan sistem tipenya berbeda sehingga tidak dapat dibaca langsung satu sama lain.
  • BSON memiliki tipe dan konvensi khusus dokumen. Pada MessagePack, aplikasi menentukan arti kode ekstensi.
  • Konversi dapat mengubah tanggal, rentang angka, desimal, atau makna pengenal. Dokumentasikan pemetaan dan validasi nilai pada implementasi penerima.

Pertanyaan umum

Bisakah saya mengganti nama berkas BSON menjadi MessagePack saja?

Tidak. Mengubah ekstensi tidak mengonversi struktur biner atau tipenya; dekode dan serialisasi ulang dengan pemetaan bidang eksplisit diperlukan.

Pelajari lebih lanjut

Referensi dan spesifikasi