Вы также можете получить _id перед вставкой. Просто добавьте поле _id для документирования с помощью нового MongoId, т.е.
$content['_id'] = new MongoId();
$db->collection->insert($content);
Также есть хорошие преимущества:
Вам не нужен флагов fsync, который опубликован в комментарии ZagNut в
предыдущий ответ. Поэтому вам не нужно ждать ответа от БД.
Вам не нужно вставлять ничего в БД для получения идентификатора. Так что вы можете
подготовить некоторые связанные объекты, а затем вставить или не вставить их -
несколько как транзакции, которые mongo не поддерживает (пока?).
Фактически вы можете генерировать идентификатор в своем приложении, а не в db, поэтому вы можете
делать то, что вы хотите до или после вставки.