Alasan panjang string dan terminator nol ada dua:kompatibilitas dengan string gaya-C yang ada, dan performa.
Untuk kinerja, MongoDB harus dapat dengan cepat membuka bidang tertentu dalam dokumen tanpa mengulangi seluruh BSON. Ini penting terutama jika Anda mencari bidang yang dekat dengan akhir dokumen besar (misalnya 16 MB). Dengan panjang string yang dikodekan sebagai salah satu informasi pertama pada tipe string, itu hanya dapat melewati jumlah byte itu dan sampai ke bidang berikutnya. Jika tidak, ia perlu mengulangi seluruh string hingga menemukan akhir string.
Untuk kompatibilitas, MongoDB ditulis dalam C++, dengan string null dihentikan . Itu dapat memotong terminator nol itu untuk menghemat satu byte karena panjangnya dikodekan, tetapi mengeluarkan string itu dari BSON ke dalam format yang dapat digunakan oleh C++ akan membutuhkan penyambungan pada nol itu lagi. Ini akan membutuhkan rutin penanganan string khusus yang satu-satunya keuntungan adalah menghemat satu byte.
Secara keseluruhan, diputuskan bahwa "membuang" satu byte adalah pertukaran yang dapat diterima.