2013-11-25 12 views
11

Sono nuovo di Mongoose.js e mi chiedo come creare una semplice query Mongoose che restituisca valori contenenti i caratteri nell'ordine in cui sono stati inviati.Come creare una query di ricerca per le corrispondenze di stringhe parziali in Mongoose?

Questo sarà per un modulo di completamento automatico che deve restituire città con nomi che contengono caratteri immessi nel campo di ricerca. Devo iniziare con una query .where?

+1

Quindi 'ln' dovrebbe restituire' London' e 'Koeln'? –

+0

Mi spiace, buon punto, la ricerca dovrebbe restituire i valori contenenti le stringhe nell'input dell'ordine nel campo di ricerca – ac360

+0

http://stackoverflow.com/questions/35838387/how-to-find-all-the-results-contain-a -given-substring-con-spazi-in-mangusta/41398045 # 41398045 –

risposta

23

È possibile trovare regexp, che dovrebbe consentire di cercare in un modo flessibile (anche se non estremamente veloce). Il codice sarebbe qualcosa di simile a;

var input = 'ln'; // the input from your auto-complete box 

cities.find({name: new RegExp(input, "i")}, function(err, docs) { 
    ... 
}); 

Naturalmente, si potrebbe pre-elaborazione la stringa per farlo corrispondere fin dall'inizio (antepone da ^), a partire dalla fine (accodare da $) ecc Basta notare che la corrispondenza con le parti arbitrarie di lunghe stringhe può essere lento.

Problemi correlati