какой смысл использовать в расчётах количество ядер, если монга "примерно однопоточная"?
потому что запрос выполняется в несколько стадий, которые хорошо параллелятся. Например расчет query plan, анализ какие страницы заафектятся, загрузка страниц в кеш и т.д.. Плюс часть коннекшенов, будут просто висеть без запросов, потому что твой код что то делает в этот момент. Опять же я говорю не про бенчмарки, а про реальность.