MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDb:Vorteil der Verwendung von ObjectID gegenüber einer Zeichenfolge mit einer ID?

Der Hauptgrund ist, dass ObjectIDs 12 Byte groß sind, während eine entsprechende Zeichenfolge 24 Byte groß ist. Über eine ausreichend große Sammlung summieren sich diese 12 Bytes, die pro ID eingespart werden, wirklich! Diese IDs bedeuten auch, dass beim Lesen oder Schreiben des Dokuments weniger Bytes über die Leitung übertragen werden.

Darüber hinaus erwarten einige ODMs ObjectIDs für externe Dokumentreferenzen und können durch Zeichenfolgenversionen der ID verwechselt werden. Ich kenne mich mit PHP-ODMs jedoch nicht gut genug aus, um zu sagen, ob Sie davon speziell betroffen sein könnten.

In Bezug auf die API-Sachen sollten Sie jedoch wahrscheinlich die Daten normalisieren, bevor Sie sie an den Client senden, denn da Mongo kein Schema erzwingt, können Sie buchstäblich jede Art von Daten in einem bestimmten Feld haben, also könnten Sie Einige Dokumente haben String-IDs und andere BSON-IDs, und Ihre API würde sie gerne beide an den Client weiterleiten, aber das eine oder andere könnte zu einem Bruch führen. In diesem speziellen Fall sollten Sie BSON-Objekt-IDs in Ihren Dokumenten verwenden und sie dann in Ihrer API-Ausgabe in Zeichenfolgen umwandeln.