MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDb:Benefício de usar ObjectID versus uma string contendo um Id?


A maior razão é que os ObjectIDs têm 12 bytes, enquanto uma string equivalente tem 24 bytes. Em uma coleção grande o suficiente, esses 12 bytes salvos por ID realmente somam! Esses IDs também significam menos bytes transferidos pela rede ao ler ou gravar o documento.

Além disso, alguns ODMs esperam ObjectIDs para referências de documentos externos e podem ser confundidos por versões de cadeia de caracteres do ID. Eu não estou familiarizado o suficiente com PHP ODMs para dizer se isso pode afetá-lo especificamente.

Em relação às coisas da API, no entanto, você provavelmente deveria estar fazendo a normalização dos dados antes de enviá-los para o cliente de qualquer maneira, porque como o Mongo não impõe um esquema, você pode ter literalmente qualquer tipo de dado em um determinado campo, então você pode tem alguns documentos que têm IDs de string e outros que têm IDs BSON, e sua API os enviaria com prazer para o cliente, mas um ou outro pode causar quebra. Nesse caso específico, você deve usar ObjectIDs BSON em seus documentos e, em seguida, deve convertê-los em strings na saída da API.