Трябва да оставите генерирането на ObjectID на клиентите/драйверите. Това гарантира, че генерираните идентификатори са уникални сред много неща, като време, сървър и процес. Използването на стандартния ObjectID също означава, че методите, реализирани от драйвери (като getTimestamp()), работят.
Въпреки това, ако мислите да използвате свой собствен тип ID за полето _id (т.е. не стандартният тип ObjectID), тогава това прави жизнеспособен избор. Например, ако искате да съхранявате информация за потребител на Twitter, тогава използването на ID на потребителя в Twitter като стойност _id е напълно логично. Лично аз се опитвам да разчитам на типа ObjectID възможно най-малко, тъй като често колекциите вече имат поле във всеки документ, което уникално идентифицира всеки документ.