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

标签 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) 是一个 promise 对象,它工作得很好。输出:

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

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

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

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

最佳答案

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

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

类似于:

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

关于node.js - db.collectionNames 在 Node.js 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33214175/

相关文章:

javascript - 配置 mongodb 并插入 JSON

node.js - 本地测试 Azure 移动身份验证 - jwt 签名无效

mongodb - 查询两个字段之和小于给定值

node.js - 如何将heroku服务器连接到mongodb?

java - 如何从我的 LinkedList 中获取数组 []

node.js - 我可以使用 sharp 和 multer 来调整图像大小并在一次操作中保存到磁盘吗?

node.js - 错误 : Failed to lookup view in Express

node.js - 在 mongodb 中查找 key 何时未知

Java:使用什么数据结构来实现可预测的排序、无重复并维护自己的整数索引?

scala - 创建 `collection.mutable.SortedSet` -- `map` 方法中的歧义