sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDb:¿Beneficio de usar ObjectID frente a una cadena que contiene una identificación?

La principal razón es que los ID de objeto tienen 12 bytes, mientras que una cadena equivalente tiene 24 bytes. ¡En una colección lo suficientemente grande, esos 12 bytes guardados por ID realmente suman! Esos ID también significan menos bytes transferidos por cable al leer o escribir el documento.

Además, algunos ODM esperan ID de objeto para referencias de documentos externos y pueden confundirse con las versiones de cadena de la ID. Sin embargo, no estoy lo suficientemente familiarizado con PHP ODM para decir si esto podría afectarlo específicamente.

Sin embargo, con respecto a las cosas de la API, probablemente debería estar normalizando los datos antes de enviarlos al cliente de todos modos, porque dado que Mongo no aplica un esquema, puede tener literalmente cualquier tipo de datos en un campo determinado, por lo que podría tiene algunos documentos que tienen ID de cadena y otros que tienen ID de BSON, y su API los enviaría felizmente al cliente, pero uno u otro podría romperse. En este caso particular, debe usar ID de objeto BSON en sus documentos y luego convertirlos en cadenas en la salida de su API.