【问题标题】:db.collectionNames doesn't work in Node.jsdb.collectionNames 在 Node.js 中不起作用
【发布时间】:2016-01-17 18:51:40
【问题描述】:

我想检查 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) 是一个 Promise 对象,它可以完美运行。输出:

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

您可以看到collectionNames 中的函数没有任何输出。我不知道为什么。

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

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

【问题讨论】:

    标签: node.js mongodb collections


    【解决方案1】:

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

    如果是这样,您将需要使用 listCollections instead - 这是 1.x 更新中的更改之一

    类似:

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

    【讨论】:

    猜你喜欢
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多