sql >> Base de Datos >  >> NoSQL >> MongoDB

Implementar autocompletar en MongoDB

Como sugirió @Thilo, puede usar varias ideas, incluido el prefijo.

Lo más importante es tener una solicitud muy rápida (porque desea que el autocompletado sienta instantáneo). Por lo tanto, debe usar la consulta que usará los índices correctamente.

Con expresión regular:use /^prefix/ (lo importante es el ^ para especificar el inicio de línea que es obligatorio para que la consulta use índice).

La consulta de rango también es buena:{ $gt : 'jhc', $lt: 'jhd' } }

Más complicado pero más rápido:puede almacenar árboles de prefijos en mongo (también conocido como intentos) con entradas como:

 {usrPrefix : "anna", compl : ["annaconda", "annabelle", "annather"]}
 {usrPrefix : "ann", compl : ["anne", "annaconda", "annabelle", "annather"]}

Esta última solución es muy rápida (si los índices están en compl, por supuesto) pero no ahorra espacio en absoluto. Conoces la compensación que tienes que elegir.