我正在尝试获取集合中的所有文档,因此我可以基于它们做一些事情。
我使用以下代码:
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没有'每个'的方法
此功能可以正常工作(相同的连接属性):
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;
};
看起来在最后一个对象上尝试了每个函数,但最后一个对象不存在。至少它看起来像那样。但我可能完全错了。
答案 0 :(得分:1)
doc
将在循环的最后一次迭代中为null
,作为循环已完成的信号。