我正在用mongo编写一个简单的NodeJS应用程序。要连接到mongo,我使用:
var mongo = require('mongodb'),
Server = mongo.Server,
Db = mongo.Db,
ObjectID = require('mongodb').ObjectID;
db.open(function(err,db) {...};
所以,我有数据库“docs”,我创建了一个名为“公司”的集合。现在它有4个对象(记录)。我希望将此集合的全部内容作为数组获取并逐行显示:
//get companies list
app.get('/companies',function(req,res){
db.collection("companies",function(err,collection){
collection.find({},function(err, companies) {
companies.forEach(function(err,company){
console.log (company);
}
);
});
});
});
但是,Node返回了我这样的错误:
TypeError: Object #<Cursor> has no method 'forEach'
有什么想法吗?提前谢谢。
答案 0 :(得分:7)
传递到companies
回调的find
参数是Cursor
对象,而不是数组。在其上调用toArray
可将查询结果转换为对象数组,或each
一次处理一个结果。
答案 1 :(得分:3)
在公司上使用.each,而不是forEach