如何在Node.js中列出所有MongoDB数据库?

时间:2013-05-15 17:04:45

标签: node.js mongodb

我试图在http://mongodb.github.io/node-mongodb-native/

中找到这个问题的解决方案

但是,我找不到从Node.js应用程序列出所有可用MongoDB数据库的解决方案。

3 个答案:

答案 0 :(得分:18)

答案 1 :(得分:7)

您现在可以使用Node Mongo驱动程序(已通过3.5测试)完成此操作

const MongoClient = require("mongodb").MongoClient;

const url = "mongodb://localhost:27017/";
const client = new MongoClient(url, { useUnifiedTopology: true }); // useUnifiedTopology removes a warning

// Connect
client
  .connect()
  .then(client =>
    client
      .db()
      .admin()
      .listDatabases() // Returns a promise that will resolve to the list of databases
  )
  .then(dbs => {
    console.log("Mongo databases", dbs);
  })
  .finally(() => client.close()); // Closing after getting the data

答案 2 :(得分:0)

*很难通过db.admin()。listDatabases获得列表,下面的代码在nodejs中可以正常工作*

const { promisify } = require('util');
const exec = promisify(require('child_process').exec)
async function test() {
  var res = await exec('mongo  --eval "db.adminCommand( { listDatabases: 1 }         
)" --quiet')
  return { res }
}

test()
  .then(resp => {
    console.log('All dbs', JSON.parse(resp.res.stdout).databases)
  })
test()