2014-08-29 76 views
0

這就是我想要實現的如何在「mongodb」中爲「typeahead」進行關鍵字搜索以val的用戶輸入獲取調用?

我有一個輸入字段,在用戶輸入上,ajax會調用mongodb表並將json結果拖到typeahead特性中。

一切正常,但用,使用下面的函數

exports.index = function(req, res){ 
    Licmgt.find(function (err, licMgts) { 
    if(err) { return handleError(res, err); } 
    return res.json(200, licMgts); 
    }); 
}; 

數據時,把它帶給每個關鍵字按下所有數據,所以最終的結果是,提前鍵入結果不會縮減到正確的字符串。

下面

是類型的代碼在html元素

 <input class="form-control" typeahead="sourceArray as sourceArray for sourceArray in getOneID($viewValue)" 
    ng-model="asyncSelected" type="text"> 
     <i ng-show="oneid" class="glyphicon glyphicon-refresh" ></i> 

和下面的Ajax調用函數

$scope.getOneID = function(val){ 
    console.log("value is " + val); 
    return $http.get('/api/licMgts/',{ 
     params: { 
     OneID:val 
     } 
    }).then(function(res){ 
     var oneIDs =[]; 
     angular.forEach(res.data,function(item){ 
     oneIDs.push(item.OneID); 
     }); 
     return oneIDs; 
    }); 
    }; 

我想提前打電話知道如何在蒙戈DB查詢與「象」選項,對於關鍵字搜索,我發現了一些像文本搜索一樣的答案,如下文所示:

db.collections.find({$text:{$search: /keyword/}}) 

這是正確的路要走嗎?任何建議將不勝感激。

+0

就我的'Licmgt.find'中沒有查詢而言,我只能看到一個回調,因此它將查找集合中的所有文檔。 – Trudbert 2014-08-29 08:09:23

+0

你正在實施某種自動完成功能嗎? – yaoxing 2014-08-29 08:16:23

+0

是的,我試圖實現typehead模式, – 2014-08-29 09:36:49

回答

0

沒有辦法像like操作符一樣使用全文mongo搜索。 由於開發人員可以做一些破解。 $ text操作符可以搜索不屬於單詞的單詞和短語。

「跑步」可能是「跑步」的結果(它受語言支持) 當您搜索「藍色」時可以獲取「藍莓」。

相關問題