2017-12-02 598 views
0

我有一個用戶數據庫,我試圖在我的數據庫中按名稱搜索, 例如: 如果我的數據庫有firstName as, 艾倫 亞歷 阿倫 Alexender 鮑勃 比爾我在mongoDb的搜索查詢返回一個空列表,同時使用正則表達式來搜索

當我寫我的查詢

router.get('/friendSearch/:q', function (req, res) { 
var result = []; 
User.find({firstName: "/" + req.params.q + "/"}, function (err, list) { 
    if (err) { 
     console.log(err); 
    } 
    else { 
     console.log("In else"); 
     console.log(list); 
    } 
}); 

});

在我的請求,通過「A」 PARAMS查詢應返回, 艾倫 亞歷 阿倫 Alexender

但是,儘管我得到一個空列表。 感謝

回答

0

使用$regex代替:

{firstName: { '$regex' : req.params.q, '$options' : 'i' }} 

可以去除$options如果你想。 i參數用於搜索不區分大小寫以匹配大小寫的情況。 如果您不需要區分大小寫的選項,你可以寫你的查詢這樣的:

{firstName: { '$regex' : req.params.q}} 

這裏documentation