【问题标题】:Distinct with mongo and node js区别于 mongo 和 node js
【发布时间】: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


    【解决方案1】:

    尝试将函数部分移动到 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

    (搜索关键字'distinct')

    原来官方文档确实有帮助

    希望对遇到同样问题的人有所帮助。

    【讨论】:

      【解决方案2】:

      应在搜索中排除 _id 字段

      查询:

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

      【讨论】:

        猜你喜欢
        • 2012-09-22
        • 2017-09-28
        • 2021-09-15
        • 1970-01-01
        • 2016-01-04
        • 1970-01-01
        • 2016-02-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多