Osobně obviňuji váš kód. Ve svých aplikacích to dokonale obcházím správným kódováním. Převedu na řetězec v kódu pro porovnání a zajistím, že vše, co vypadá jako ObjectId
se ve skutečnosti používá jako ObjectId
.
Je dobré poznamenat, že mezi ObjectId
(http://docs.mongodb.org/manual/reference/object-id/) a je to hexová reprezentace, ve skutečnosti je rozdíl 12 bajtů, ObjectId
je 12 bajtů a jeho hexadecimální reprezentace je 24.
Nejde jen o efektivitu úložiště, ale také o indexy; nejen proto, že jsou menší, ale také kvůli ObjectId
lze použít zvláštním způsobem, aby bylo zajištěno, že budou načteny pouze části indexu; díly, které se používají. Nejzřetelnější je to při vkládání, kdy je pro zajištění jedinečnosti potřeba načíst pouze nejnovější část tohoto indexu. Nemůžete zaručit takové chování s jeho hexadecimální reprezentací.
Důrazně bych vám doporučil nepoužívat OjbectId
hex reprezentace. Pokud si chcete "ulehčit život", bylo by lepší vytvořit jiné _id
který je menší, ale nějak stejně jedinečný a přátelský k indexům.