0

コレクション内のすべてのドキュメントを取得しようとしているので、それらに基づいて何かを行うことができます。

次のコードを使用しています。

var test = pool.getDbCollection('Events');
test.find()   //get them all
    .each(function (error, doc) {
        if (error) {
            throw error;
        } else {
                    //I am not getting here
                    //I am getting TypeError: Object 5 has no method 'each'
                    //And there are 5 Documents in the collection
        }
    });
}

そして取得し続けます:オブジェクト5にはメソッド「each」がありません

この関数は問題なく動作します (同じ接続プロパティ):

 exports.getEventData = function (data) {
    var deferred = Q.defer();
    var eventCollection = pool.getDbCollection('Events');//TO DO Move this to config file
    eventCollection.findOne({"id":data},
        function (err, docs) {
            if (!err) {
                deferred.resolve(docs);
                console.log('INFO(getEvents Method): Got the data !!!!')

            } else {
                deferred.reject('INFO(getEvents Method): Failed to get the data');
            }
        }
    );

    return deferred.promise;
};

各関数が最後のオブジェクトで試行されているように見えますが、最後のオブジェクトは存在しません。少なくとも私にはそう見えます。しかし、私は完全に間違っているかもしれません。

4

1 に答える 1

1

docループがnull完了したことを示す信号として、ループの最後の繰り返しになります。

于 2013-11-06T12:22:35.677 に答える