Tak, najlepszym rozwiązaniem jest użycie ObjectId firmy mongo. Jedyną rzeczą jest to, że musisz je samodzielnie wygenerować w kodzie aplikacji. Mają być globalnie unikatowe, różni pracownicy nie generują dwóch identycznych identyfikatorów ObjectId, więc w tym sensie nie ma warunków wyścigu.
Wszystkie oficjalne sterowniki powinny umożliwiać generowanie ObjectId. Oto jak to jest w Ruby:
oid = BSON::ObjectId.new