2013-11-25 56 views
11

我是新來的Mongoose.js,我想知道如何創建一個簡單的Mongoose查詢,返回包含提交順序的字符的值。如何在Mongoose中爲部分字符串匹配創建搜索查詢?

這將用於自動填充表單,該表單需要返回包含字符輸入到搜索字段的名稱的城市。我應該從.where查詢開始?

+1

那麼'ln'應該返回'London'和'Koeln'嗎? –

+0

對不起,好點,搜索應該返回包含字符串輸入到搜索字段中的字符串的值 – ac360

+0

http://stackoverflow.com/questions/35838387/how-to-find-all-the-results-containing-a -given子串與 - 空間功能於貓鼬/ 41398045#41398045 –

回答

23

你可以找到正則表達式,它應該允許你以靈活(儘管不是非常快)的方式進行搜索。代碼會類似於;

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

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

當然,你可以預處理字符串,使其從一開始(由^預先考慮)相匹配,從末端(由$追加)等,只要注意,對長字符串的任意部分匹配可能慢。