Node.js MongoDB检索所有文档

Node.js MongoDB检索所有文档,node.js,mongodb,Node.js,Mongodb,我正在尝试从mongoDB获取所有文档,我的代码如下所示: MongoClient.connect('mongodb://localhost/catalog', function(err, db) { db.open(function(err, db) { var cursor = db.collection('products').find(function(err, cursor) { cursor.each(function(err, doc

我正在尝试从mongoDB获取所有文档,我的代码如下所示:

MongoClient.connect('mongodb://localhost/catalog', function(err, db) {
    db.open(function(err, db) {
        var cursor = db.collection('products').find(function(err, cursor) {
            cursor.each(function(err, doc) {
                console.log(doc);
            });     
        });
    });
});
但是我没有打印出任何东西,我也不知道问题出在哪里。如果我放入一个查询字符串(即find({“name”:“Samsung note”})),它工作正常并返回产品

我的错在哪里

tnx

更新:即使我调用单个产品,cursor.count()也不会返回任何结果

db.open(function(err, db) {
        db.collection('products').find({"upc": "027242799219"}, function(err, cursor) {
            var cnt = cursor.count();
            console.log(cnt);     
        });
    });
更新(第2步):我转到另一个mongoDB.find()问题,并从答案中复制了代码:

MongoClient.connect('mongodb://localhost/catalog', function(err, db) {
    theDB = db;

    db.open(function(err, db) {
        if (err) return console.log('error opening db, err = ', err);
        console.log("db opened!");
        db.collection('products', function(err, collection) {
            if (err) return console.log('error opening users collection, err = ', err);
            collection.find().limit(100).toArray(function(err, results) {
                if (err) return console.log('error initiating find on users, err = ', err);
                else    
                    {
                        for(i = 0; i < 100; i++)
                             {
                                 console.log(results[i]);
                             }
                        db.close();
                        console.log("CLOSED");
                    }                         
                });
            });
        });
    });
MongoClient.connect('mongodb://localhost/catalog,函数(err,db){
theDB=db;
db.open(函数(err,db){
if(err)返回console.log('打开数据库时出错,err=',err);
log(“数据库已打开!”);
db.collection('产品',功能(错误,集合){
if(err)返回console.log('打开用户集合时出错,err=',err);
collection.find().limit(100).toArray(函数(err,results){
if(err)返回console.log('在用户上启动find时出错,err=',err);
其他的
{
对于(i=0;i<100;i++)
{
console.log(结果[i]);
}
db.close();
控制台日志(“关闭”);
}                         
});
});
});
});
现在。。。这会打印结果,但如果我在console.log上设置断点或尝试对结果执行某些操作[I](例如将其写入elastic),则应用程序将无响应。我可以在任务管理器中看到,它使用了越来越多的CPU/内存,而实际上没有达到我的断点


什么?

尝试
find({},函数(err,cursor))
no,不起作用:-(find的可能重复项检索光标。第163行