【发布时间】:2014-07-30 06:16:58
【问题描述】:
我正在尝试使用使用节点 js 实现的休息服务来获取记录,以填充 jquery 的自动完成功能。这是方法
db.collection('publication', function(err, collection) {
collection.distinct('title',{'$or':[{type:'an'},{type:'pub'}]}).toArray(function(err, items) {
res.jsonp(items);
});
});
};
mongo 中的查询有效 ->
db.publication.distinct('title',{'$or':[{type:'an'},{type:'pub'}]})
返回 [“产品”、“事件”] 但是当我使用 find 时结果不同, 用 find 将是->
{ "_id" : ObjectId("51fbb2124e49d03810000000"), "title" : "Anuncio" }
{ "_id" : ObjectId("51fbb2ae4e49d03810000001"), "title" : "Evento" }
自动完成的第二种方式可以工作,但第一种方式不行
节点显示的错误是:对象不是函数。
最后我需要的是返回一个带有记录的 json 来填充自动完成功能,如下所示:
$('#search').autocomplete({
source: function(req, res) {
$.ajax({
url: "http://www.example.com:3000/autocomplete/" + req.term ,
dataType: "jsonp",
type: "GET",
data: {
term: req.term
},
success: function(data) {
res($.map(data, function(item) {
return {
label: item.title,
value: item.title
};
}));
},
error: function(xhr) {
alert(xhr.status + ' : ' + xhr.statusText);
}
});
});
【问题讨论】:
标签: jquery node.js mongodb rest distinct