db.collectionNames在Node.js中不起作用

时间:2015-10-19 12:16:57

标签: node.js mongodb collections

我想检查Node.js中是否存在集合。我使用db.collectionNames获取数据库中的名称列表但没有任何反应。代码:

connectDB(DBURL).then(function(db) {
        console.log('db connect ok');

        db.collectionNames('test', function(err, collectionNames) {
            console.log('get collection names');

            if(err) console.log(err);
            else console.log(collectionNames);
        });

    }, function(err) {
        console.log(err);
    });

connectDB(DBURL)是一个承诺对象,它完美无缺。输出:

app-0 try to connect db
app-0 db connect ok

您可以看到collectionNames中的功能没有任何输出。我不明白为什么。

我可以通过db.getCollectionNames获取Mongo shell中的集合名称:

> db.getCollectionNames()
[ "system.indexes", "test" ]

1 个答案:

答案 0 :(得分:6)

您使用的是> 2.0版本的驱动程序吗?

如果是这样,您需要使用listCollections instead - 这是1.x

更新中的更改之一

类似的东西:

db.listCollections().toArray(function(err, collections){
    //collections = [{"name": "coll1"}, {"name": "coll2"}]
});