与mongo和节点js不同

我正在尝试使用节点js实现的其余服务获取logging来填充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'}]}) 

返回[“Product”,“Event”],但是当我使用find时,结果是不同的,find将是 – >

 { "_id" : ObjectId("51fbb2124e49d03810000000"), "title" : "Anuncio" } { "_id" : ObjectId("51fbb2ae4e49d03810000001"), "title" : "Evento" } 

自动完成工作的第二种方式,但与第一种不

节点中显示的错误是:对象不是一个函数。

最后,我需要的是返回一个JSON的logging来填充自动完成它是这样填充:

 $('#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); } }); }); 

尝试将函数部分移到distinct()中。

collection.distinct('title',{'$or':[{type:'an'},{type:'pub'}]},function(err, items) { res.jsonp(items); });

我遇到了同样的问题,我在这里解决了我的问题:

http://mongodb.github.io/node-mongodb-native/api-generated/collection.html

(search关键词“distinct”)

事实certificate,官方文件有帮助

希望能帮助有同样问题的人。

应该排除search中的_id字段

查询:

 db.products.find( { qty: { $gt: 25 } }, { item: 1, qty: 1, _id: 0 } )