Nein, es ist überhaupt nicht schlimm und tatsächlich die eingebaute ObjectId
innerhalb des Index ziemlich umfangreich ist, also wenn Sie glauben, dass Sie etwas Besseres haben, können Sie gerne den Standardwert der _id
ändern Feld zu was auch immer.
Aber, und das ist ein großes aber , gibt es einige Überlegungen bei der Entscheidung, von der standardmäßig formulierten ObjectId
abzuweichen , insbesondere wenn die automatisch inkrementierenden _ids wie hier gezeigt verwendet werden:https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field
Multi-Threading ist kein so großes Problem, weil findAndModify
und die Atomschlösser können sich tatsächlich darum kümmern, aber dann stoßen Sie einfach auf Ihr erstes Problem. findAndModify
ist weder die schnellste noch die leichteste Funktion, und bei regelmäßiger Verwendung wurden erhebliche Leistungseinbußen festgestellt.
Auch ohne findAndModify
müssen Sie den Overhead bedenken, dies ohnehin selbst zu tun . Für jede Einfügung benötigen Sie eine zusätzliche Abfrage. Stellen Sie sich vor, Sie haben eine eindeutige ID, die Sie jedes Mal, wenn Sie sie einfügen möchten, auf ihre Eindeutigkeit abfragen müssen. Irgendwann sinkt Ihre Einfügungsrate auf ein Schneckentempo und Ihre Sperrzeit baut sich auf.
Natürlich die ObjectId
ist wirklich gut darin, einzigartig zu sein, ohne seine eigene Einzigartigkeit überprüfen oder formulieren zu müssen, indem die Datenbank vor dem Einfügen berührt wird, daher hat es diesen Overhead nicht.
Wenn Sie immer noch der Meinung sind, dass eine Ganzzahl _id zu Ihrem Szenario passt, dann entscheiden Sie sich dafür, aber denken Sie an den oben beschriebenen Overhead.