Lý do lớn nhất là các ObjectID là 12 byte, trong khi một chuỗi tương đương là 24 byte. Trên một bộ sưu tập đủ lớn, 12 byte được lưu cho mỗi ID thực sự cộng lại! Những ID đó cũng có nghĩa là ít byte được truyền qua dây hơn khi đọc hoặc ghi tài liệu.
Ngoài ra, một số ODM yêu cầu các ObjectID cho các tham chiếu tài liệu bên ngoài và có thể bị nhầm lẫn bởi các phiên bản chuỗi của ID. Tuy nhiên, tôi không đủ quen thuộc với các ODM PHP để nói liệu điều này có thể ảnh hưởng đến bạn cụ thể hay không.
Tuy nhiên, liên quan đến nội dung API, có lẽ bạn nên thực hiện bình thường hóa dữ liệu trước khi gửi nó cho khách hàng, bởi vì Mongo không thực thi một lược đồ, bạn có thể có bất kỳ loại dữ liệu nào trong một trường nhất định theo đúng nghĩa đen, vì vậy bạn có thể có một số tài liệu có ID chuỗi và những tài liệu khác có ID BSON và API của bạn sẽ vui vẻ gửi cả hai qua đến máy khách, nhưng tài liệu này hoặc tài liệu khác có thể gây ra sự cố. Trong trường hợp cụ thể này, bạn nên sử dụng BSON ObjectID trong tài liệu của mình và sau đó nên truyền chúng thành chuỗi trong đầu ra API của bạn.