Générez l'ObjectId tôt, utilisez-le dans l'insertion, et il n'y aura pas besoin que la base de données vous le renvoie.ObjectId n'utilise pas de numéro de séquence partagé pour être unique, donc peu importe si vous en générez un avant l'insertion ou récupérez-le après.
public ObjectId createThing() {
ObjectId result = new ObjectId();
BasicDBObject thingToInsert = new BasicDbObject();
thingToInsert.put('_id', result);
//set other fields here
collection.insert(thingToInsert);
return result;
}