无法在节点中使用MongoClient列出mongodb集合中的文档.js



我可以使用 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()

我不知道我做错了什么。谢谢!

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
        }
    }
}

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

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

最新更新