Ich persönlich gebe Ihrem Code die Schuld. Ich kann das in meinen Anwendungen perfekt umgehen, indem ich richtig codiere. Ich wandle den Code zum Vergleichen in eine Zeichenfolge um und stelle sicher, dass alles, was wie eine ObjectId
aussieht wird tatsächlich als ObjectId
verwendet .
Es ist gut zu beachten, dass zwischen ObjectId
(http://docs.mongodb.org/manual/reference/object-id/) und seiner hexadezimalen Darstellung gibt es tatsächlich 12 Bytes Unterschied, die ObjectId
12 Bytes und seine Hex-Darstellung 24.
Es geht nicht nur um Speichereffizienz, sondern auch um Indizes; nicht nur weil sie kleiner sind, sondern auch wegen der ObjectId
kann in besonderer Weise verwendet werden, um sicherzustellen, dass nur Teile des Index geladen werden; die verwendeten Teile. Dies macht sich am deutlichsten beim Einfügen bemerkbar, wo nur der letzte Teil dieses Index geladen werden muss, um die Eindeutigkeit sicherzustellen. Sie können ein solches Verhalten mit seiner Hex-Darstellung nicht garantieren.
Ich würde dringend empfehlen, die OjbectId
nicht zu verwenden 's Hex-Darstellung. Wenn Sie "Ihr Leben einfacher machen" möchten, sollten Sie besser eine andere _id
erstellen die kleiner, aber irgendwie genauso einzigartig und indexfreundlich ist.