2013-11-25 8 views
11

Ich bin neu in Mongoose.js und ich frage mich, wie eine einfache Mongoose Abfrage erstellen, die Werte enthalten, die Zeichen in der Reihenfolge zurückgibt, dass sie eingereicht wurden.Wie erstelle ich eine Suchabfrage für Teilzeichenfolgenübereinstimmungen in Mongoose?

Dies ist für ein Autocomplete-Formular, das Städte mit Namen zurückgeben muss, die Zeichen enthalten, die in das Suchfeld eingegeben werden. Sollte ich mit einer .where Abfrage beginnen?

+1

So 'ln' sollte' London' und 'Koeln' zurückkehren? –

+0

Sorry, guter Punkt, die Suche sollte Werte, die die Zeichenfolgen in der Reihenfolge enthalten, in das Suchfeld – ac360

+0

http://stackoverflow.com/questions/35838387/how-to-find-all-the-results-containing-a zurückgeben -geben-substring-with-spaces-in-mongoose/41398045 # 41398045 –

Antwort

23

Sie konnten durch regexp finden, die Ihnen erlauben sollten, in einer flexiblen (wenn auch nicht extrem schnellen) Weise zu suchen. Der Code wäre etwas ähnlich zu;

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

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

Natürlich können Sie Vorprozess die Zeichenfolge konnte, um es von Anfang an zu machen übereinstimmen (prepend von ^), vom Ende (hängen durch $) usw. beachten Sie, dass nur gegen willkürliche Teile von langen Strings passend sein kann, langsam.

Verwandte Themen