如何使用mongoose在nodejs中获取数据库(mongodb)的所有集合名称

s71maibg  于 2023-06-23  发布在  Go
关注(0)|答案(1)|浏览(167)

我想console.log数据库的所有集合(默认测试)
我找到了下面的解决方案,但它不工作。

const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/test',)
    .then(() => {
        console.log("Database Connected");
        mongoose.connection.db.listCollections().toArray((error, collections) => {
            collections.forEach((collection) => {
                console.log(collection.name);
            });
        });
    })
    .catch(() => {
        console.log("Database connection Failed");
    });
a2mppw5e

a2mppw5e1#

尝试使用map而不是forEach

const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/test',)
.then(() => {
    console.log("Database Connected");
    mongoose.connection.db.listCollections().toArray((error, collections) => {
        if (error) {
    console.error('Error retrieving collections:', error);
    return;
  }

  // Extract collection names from the collections array
  const collectionNames = collections.map(collection => collection.name);
  console.log('Collection Names:', collectionNames);
    });
})
.catch(() => {
    console.log("Database connection Failed");
});

如果出现错误,检查是什么问题。大多数情况下,它将与db连接

相关问题