1

ノード 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'}]}) 

[ "Product", "Event" ] を返しますが、find を使用すると結果が異なります。

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

2 番目の方法ではオートコンプリートが機能しますが、最初の方法では機能しません

ノードに表示されるエラー: オブジェクトは関数ではありません。

最後に、次のように入力されたオートコンプリートを入力するために、レコードを含む 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);
                }
            });
        });
4

2 に答える 2

-3

検索で_idフィールドを除外する必要があります

クエリ:

db.products.find( { qty: { $gt: 25 } }, { item: 1, qty: 1, _id: 0 } )
于 2013-08-03T17:28:56.557 に答える