这就是我想要实现的目标
我有一个输入字段,在用户输入时,将对 mongodb 表进行 ajax 调用,并为 typeahead 功能提取 json 结果。
一切正常,但是当使用以下功能提取数据时
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;
});
};
我想知道如何在 mongo db 中使用“like”选项进行查询,对于关键字搜索,我找到了一些答案,例如使用 $text 进行文本搜索,如下所示
db.collections.find({$text:{$search: /keyword/}})
这是正确的方法吗?任何建议将不胜感激。