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