Największym powodem jest to, że ObjectIDs mają 12 bajtów, podczas gdy odpowiednik ma 24 bajty. W wystarczająco dużej kolekcji te 12 bajtów zapisanych na identyfikator naprawdę się sumuje! Te identyfikatory oznaczają również mniej bajtów przesyłanych przez przewód podczas czytania lub pisania dokumentu.
Ponadto niektórzy ODM oczekują identyfikatorów ObjectID dla odwołań do dokumentów zewnętrznych i mogą być mylone z ciągami wersji identyfikatora. Nie jestem jednak wystarczająco zaznajomiony z ODM PHP, aby powiedzieć, czy może to wpłynąć na ciebie konkretnie.
Jeśli chodzi o rzeczy związane z API, prawdopodobnie powinieneś i tak normalizować dane przed wysłaniem ich do klienta, ponieważ ponieważ Mongo nie wymusza schematu, możesz mieć dosłownie każdy rodzaj danych w danym polu, więc możesz masz dokumenty, które mają identyfikatory ciągów, a inne, które mają identyfikatory BSON, a Twój interfejs API z radością wyśle je do klienta, ale jeden lub drugi może spowodować uszkodzenie. W tym konkretnym przypadku powinieneś używać BSON ObjectID w swoich dokumentach, a następnie rzutować je na ciągi w wyjściu API.