Comme suggéré par @Thilo, vous pouvez utiliser plusieurs idées, y compris le préfixe.
La chose la plus importante est d'avoir une requête très rapide (parce que vous voulez que la saisie semi-automatique sent instantané). Vous devez donc utiliser une requête qui utilisera correctement les index.
Avec regexp :utilisez /^prefix/
(l'important est le ^ pour spécifier le début de ligne qui est obligatoire pour que la requête utilise l'index).
La requête de plage est bonne aussi :{ $gt : 'jhc', $lt: 'jhd' } }
Plus compliqué mais plus rapide :vous pouvez stocker des arborescences de préfixes dans mongo (alias essaye) avec des entrées comme :
{usrPrefix : "anna", compl : ["annaconda", "annabelle", "annather"]}
{usrPrefix : "ann", compl : ["anne", "annaconda", "annabelle", "annather"]}
Cette dernière solution est très rapide (si index sur compl bien sûr) mais pas du tout économe en espace. Vous connaissez le compromis que vous devez également choisir.