Node.js上的MongoDB不起作用,返回undefined

时间:2013-08-16 14:10:31

标签: node.js mongodb

在以下代码中:

var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/db_name', function(err, db){
    if (err) throw err;

    var collection = db.collection('col_name');
    console.log(collection.find().toArray(function(err, items){}));

});

当我运行上述操作时,它不会返回任何结果,而是返回undefined。我错过了什么?

另外,为了确认db上存在一些集合,我尝试添加console.log(db.getCollectionNames());,但看起来它在Node.js驱动程序中没有这样的方法。那么仍然可以确认收藏品的存在吗? (无论如何,我只想在这些情况下使用它作为调试 - 通常我不需要这个方法。)

感谢。

2 个答案:

答案 0 :(得分:6)

不要记录整个find()函数,在回调中进行检查:

collection.find().toArray(function(err, items){
    console.log(items);
});

答案 1 :(得分:2)

对于getCollectionNames()部分,该方法实际上在mongodb本机驱动程序中称为collectionNames():

db.collectionNames(function (err, list) {console.log(list)});