Как предлагает @Thilo, вы можете использовать несколько идей, включая префикс.
Самое главное, чтобы у вас был очень быстрый запрос (потому что вы хотите, чтобы автозаполнение до казалось мгновенным). Таким образом, вы должны использовать запрос, который будет правильно использовать индексы.
При использовании regexp: используйте /^prefix/
(важно, чтобы ^ указывал начало строки, которая обязательна для индекса использования запроса).
Запрос диапазона также хорош: { $gt : 'jhc', $lt: 'jhd' } }
Сложнее, но быстрее: вы можете хранить префикс-деревья в монго (он же пытается) с такими записями, как:
{usrPrefix : "anna", compl : ["annaconda", "annabelle", "annather"]}
{usrPrefix : "ann", compl : ["anne", "annaconda", "annabelle", "annather"]}
Это последнее решение очень быстрое (если, конечно, индексы на compl), но совсем не экономит место. Вы знаете компромисс, который вы тоже выбрали.