Причината както за дължината на низа, така и за нулевия терминатор е двойна:съвместимост със съществуващи низове в стил C и производителност.
За производителност MongoDB трябва да може бързо да отиде до конкретно поле в документ, без да обикаля целия BSON. Това е важно, особено ако търсите поле, което е близо до края на голям (да речем 16 MB) документ. С дължината на низа, кодирана като една от първите информации за тип низ, той може просто да пропусне този брой байтове и да стигне до следващото поле. В противен случай ще трябва да премине през целия низ, докато намери края на низа.
За съвместимост MongoDB е написан на C++, където низовете са нулев термин . Той може да отреже този нулев терминатор, за да спести един байт, тъй като дължината е кодирана, но извеждането на този низ от BSON във формат, който може да се използва от C++, ще изисква повторно поставяне на този нула. Това ще изисква специализирана процедура за обработка на низове, като единственото предимство е спестяването на един байт.
Като цяло беше решено, че "губенето" на един байт е приемлив компромис.