Аз лично обвинявам вашия код. Заобикалям това перфектно в приложенията си, като кодирам правилния начин. Преобразувам в низ в кода за сравнение и гарантирам, че всичко, което изглежда като ObjectId
всъщност се използва като ObjectId
.
Добре е да се отбележи, че между ObjectId
(http://docs.mongodb.org/manual/reference/object-id/) и шестнадесетичното му представяне всъщност има 12 байта разлика, ObjectId
е 12 байта и шестнадесетичното му представяне е 24.
Става дума не само за ефективността на съхранението, но и за индексите; не само защото са по-малки, но и поради ObjectId
може да се използва по специален начин, за да се гарантира, че се зареждат само части от индекса; частите, които се използват. Това става най-забележимо при вмъкване, където трябва да се зареди само най-новата част от този индекс, за да се гарантира уникалност. Не можете да гарантирате такова поведение с шестнадесетичното му представяне.
Силно препоръчвам да не използвате OjbectId
шестнадесетично представяне на . Ако искате да "улесните живота си", ще бъде по-добре да създадете различен _id
който е по-малък, но по някакъв начин също толкова уникален и удобен за индексиране.