Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用node.js中的MongoClient列出mongodb集合中的文档_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 无法使用node.js中的MongoClient列出mongodb集合中的文档

Javascript 无法使用node.js中的MongoClient列出mongodb集合中的文档,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我可以使用MongoClient从node.js连接到我的数据库。我能够从集合中写入、更新和删除文档。但我无法从中检索数据。这是我的代码: var mongoClient=require('mongodb').MongoClient; var mongoDbObj; mongoClient.connect('mongodb://127.0.0.1:27017/trendoa', function(err, db){ if(err){ console.log(err); }els

我可以使用MongoClient从node.js连接到我的数据库。我能够从集合中写入、更新和删除文档。但我无法从中检索数据。这是我的代码:

var mongoClient=require('mongodb').MongoClient;
var mongoDbObj;

mongoClient.connect('mongodb://127.0.0.1:27017/trendoa', function(err, db){
  if(err){
    console.log(err);
  }else{
    global.db = db;
};

var col = global.db.collection('twitter_accounts_mon');

// create
var doc1 = {'hola':'sushi'};
col.insert(doc1, function(err, result) {
  callback(err);
});

// update
col.update({hola:'jordi'}, {$set:{hola:'joan'}}, {w:1}, function(err, result) {});

// delete
col.remove({hola:'jordi'}, function(err, result) {
  callback(err);
});

// read
col.find().toArray(function(err, docs) {
    console.log(docs);
});
在最后几行代码中,我试图使用find获取所有文档,但它不会返回任何结果

通过mongo shell,我使用此命令在屏幕上获取数据:

db.twitter_accounts_mon.find()
我不知道我做错了什么。谢谢

根据Node.js驱动程序上的MongoDB,find方法不执行实际的查询,它构建一个游标实例,然后用于检索数据。因此,您需要处理查询的结果

var entireCollectionArray = col.find().toArray(function(err, items) {});

entireCollectionArray.forEach(function (element) {
     console.log(element);
});

nodejs回调必须嵌套(仅在数据库打开后搜索集合)

mongoClient.connect('mongodb://127.0.0.1:27017/trendoa', function(err, db){
    var col = db.collection('twitter_accounts_mon');
    coll.find({}, function(err, cursor) {
        cursor.toArray(function(err, data) {
            // process the data array
        }
    }
}

尝试在数据库回调中移动代码。在global.db=db之后