La principale raison est que les ID d'objet sont de 12 octets, alors qu'une chaîne équivalente est de 24 octets. Sur une collection suffisamment grande, ces 12 octets enregistrés par ID s'additionnent vraiment ! Ces identifiants signifient également moins d'octets transférés sur le câble lors de la lecture ou de l'écriture du document.
En outre, certains ODM attendent des ObjectID pour les références de documents externes et peuvent être confondus par les versions de chaîne de l'ID. Je ne connais pas assez les ODM PHP pour dire si cela pourrait vous affecter spécifiquement.
En ce qui concerne l'API, cependant, vous devriez probablement faire la normalisation des données avant de les envoyer au client de toute façon, car puisque Mongo n'applique pas de schéma, vous pouvez avoir littéralement n'importe quel type de données dans un champ donné, donc vous pourriez avoir des documents qui ont des ID de chaîne et d'autres qui ont des ID BSON, et votre API les enverrait avec plaisir au client, mais l'un ou l'autre pourrait provoquer une rupture. Dans ce cas particulier, vous devez utiliser les ID d'objet BSON dans vos documents, puis les convertir en chaînes dans la sortie de votre API.