最大の理由は、ObjectIDが12バイトであるのに対し、同等の文字列は24バイトであるということです。十分な大きさのコレクションでは、IDごとに保存された12バイトが実際に合計されます。これらのIDは、ドキュメントの読み取りまたは書き込み時にネットワーク上で転送されるバイト数も少なくなることを意味します。
さらに、一部のODMは、外部ドキュメント参照用のObjectIDを想定しており、IDの文字列バージョンによって混乱する可能性があります。ただし、PHP ODMについては、これが特に影響を与える可能性があるかどうかを判断するのに十分な知識がありません。
ただし、APIに関しては、クライアントに送信する前にデータの正規化を行う必要があります。Mongoはスキーマを適用しないため、特定のフィールドに文字通りあらゆる種類のデータを含めることができるため、文字列IDを持つドキュメントとBSONIDを持つドキュメントがあり、APIは両方をクライアントに送信しますが、どちらか一方が破損する可能性があります。この特定のケースでは、ドキュメントでBSON ObjectIDを使用してから、API出力の文字列にキャストする必要があります。