javascript - Cum să creezi funcționalitate de căutare/autocompletare folosind mongodb și expressjs?


Așadar, practic vreau să creez o funcționalitate de căutare pentru schema utilizatorilor mei. Aș prelua o interogare pentru un utilizator pe baza numelui său și aș întoarce utilizatorii relevanți.

De exemplu:

query="leo", response=["leonel messi", "leonardo dicaprio", ...]

Am încercat deja să folosesc indexul de text, dar, deoarece acesta necesită introducerea cuvintelor întregi, nu se potrivește constrângerilor mele, deoarece o interogare va fi cel mai probabil caractere, mai degrabă decât cuvinte întregi.

Deci, practic, caut să creez un sistem de completare automată care să returneze utilizatori relevanți pe baza unor date introduse de către utilizator.

Cum aș putea realiza asta? Mulțumesc!

Răspuns #1

Așa cum au arătat Dov Rine și rajabraza în comentarii, aș putea pur și simplu să folosesc un regex pentru a realiza o astfel de implementare.

Cod :

const searchResults = await Users.find({ name: { $regex: `^${req.params.name}`, $options: 'i' } }).select(["name"]);