7

我正在用 mongo 编写一个简单的 NodeJS 应用程序。为了连接到 mongo,我使用:

var mongo = require('mongodb'),
Server = mongo.Server,
Db = mongo.Db,
ObjectID = require('mongodb').ObjectID;
db.open(function(err,db) {...};

所以,我有数据库“文档”,并且创建了一个名为“公司”的集合。现在它有 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'

有任何想法吗?提前致谢。

4

2 回答 2

7

companies传递给find回调的参数是一个Cursor对象,而不是一个数组。调用toArray它将查询结果转换为对象数组,或each一次处理一个结果。

于 2012-06-06T20:34:01.987 回答
3

在公司上使用 .each,而不是 forEach

于 2012-06-06T20:32:00.130 回答