De grootste reden is dat ObjectID's 12 bytes zijn, terwijl een equivalente string 24 bytes is. Over een verzameling die groot genoeg is, tellen die 12 bytes die per ID zijn bespaard echt op! Die ID's betekenen ook dat er minder bytes over de draad worden overgedragen bij het lezen of schrijven van het document.
Bovendien verwachten sommige ODM's ObjectID's voor externe documentverwijzingen en kunnen ze in de war raken door tekenreeksversies van de ID. Ik ben echter niet bekend genoeg met PHP ODM's om te zeggen of dit specifiek voor jou van invloed kan zijn.
Wat de API-dingen betreft, zou u waarschijnlijk de gegevens moeten normaliseren voordat u deze naar de client verzendt, want aangezien Mongo geen schema afdwingt, kunt u letterlijk elke soort gegevens in een bepaald veld hebben, dus u zou heb sommige documenten met string-ID's en andere met BSON-ID's, en uw API zou ze graag beide naar de client sturen, maar de een of de ander kan breuk veroorzaken. In dit specifieke geval moet u BSON ObjectID's in uw documenten gebruiken en deze vervolgens casten naar strings in uw API-uitvoer.