Ja, die Verwendung der ObjectId von Mongo ist der richtige Weg. Die einzige Sache ist:Sie müssen sie selbst im Anwendungscode generieren. Sie sollen global eindeutig sein, unterschiedliche Worker generieren nicht zwei identische ObjectIds, daher gibt es in diesem Sinne keine Race-Bedingung.
Alle offiziellen Treiber sollten eine Möglichkeit bieten, ObjectId zu generieren. So ist es in Ruby:
oid = BSON::ObjectId.new