Hassan,
Асинхронная запись на диск, о которой вы говорили, выполняется путем записи изменений в память и последующей периодической синхронизации их на диск в фоновом режиме, поэтому объединение этих двух операций, скорее всего, не окажет такого влияния на производительность, как вы думаете.
Журнал - это совсем другое дело - он записывается отдельно на диск идемпотентным образом в целях безопасности, чтобы упростить восстановление / восстановление в случае сбоя или других подобных проблем. Вы всегда можете запустить БД с отключенным ведением журнала, выполнить импорт, а затем перезапустить с включенным ведением журнала, как только массовое обновление будет выполнено, если записи журнала вызывают у вас серьезные проблемы.
Наконец, будьте осторожны с логикой «не существует» во втором модификаторе - с точки зрения индексации предпочтительным является положительный оператор, такой как выход, в противном случае индексы могут не использоваться, и это, безусловно, замедлит вставку.
Помимо массовых вставок, для единичных атомарных обновлений вы также можете изучить использование findAndModify (http://www.mongodb.org/display/DOCS/findAndModify+Command) для проверки и последующих изменений для вас, на основании описания трудно сказать, будет ли это подходящим вариантом, потому что у него есть свои недостатки.