Sì, l'utilizzo di ObjectId di mongo è la strada da percorrere. L'unica cosa è:devi generarli tu stesso, nel codice dell'applicazione. Sono pensati per essere unici a livello globale, lavoratori diversi non genereranno due ObjectId identici, quindi non esiste una race condition in questo senso.
Tutti i driver ufficiali dovrebbero fornire un modo per generare ObjectId. Ecco com'è in Ruby:
oid = BSON::ObjectId.new