NodeJS + Mongo - 如何获取集合的内容?

f1n*_*1nn 7 json mongodb node.js

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

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

所以,我有数据库"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);
            }
        );
    });
});
});
Run Code Online (Sandbox Code Playgroud)

但是,Node返回了我这样的错误:

TypeError: Object #<Cursor> has no method 'forEach'
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*yHK 7

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