【问题标题】:How to get list of databases in MongoDB using NodeJs? [duplicate]如何使用 NodeJs 获取 MongoDB 中的数据库列表? [复制]
【发布时间】:2016-09-28 21:07:34
【问题描述】:

我在 C# 和 Java 上看到了答案,但在 NodeJs 上找不到任何东西。我曾尝试在 Windows 中使用 cmd shell 来获得所需的输出,但没有成功。

我知道在 Mongo shell 中可以获取相同的信息,但要求是在 NodeJs 应用程序中获取一个列表。

 cmd = child_process.exec('"C:\\Program Files\\MongoDB\\Server\\3.2\\bin\\mongo.exe" admin ; db.getMongo().getDBNames()');

还有

var mongoServer = require('mongodb-core').Server;

 var server = new mongoServer({
    host: 'localhost'
    , port: 27017
    , reconnect: true
    , reconnectInterval: 50   });

  server.on('connect', function (_server) {

  console.log('connected');

 var cmdres = _server.command('db.adminCommand({listDatabases: 1})');

 console.log("Result: " + cmdres);

}

【问题讨论】:

标签: javascript node.js mongodb


【解决方案1】:

您可以使用mongodb驱动获取dbs如下

var MongoClient = require('mongodb').MongoClient;

// Connection url
var url = 'mongodb://localhost:27017/test';
// Connect using MongoClient
MongoClient.connect(url, function(err, db) {
  // Use the admin database for the operation
  var adminDb = db.admin();
  // List all the available databases
  adminDb.listDatabases(function(err, result) {
    console.log(result.databases);
    db.close();
  });
});

参考:http://mongodb.github.io/node-mongodb-native/2.2/api/

【讨论】:

    【解决方案2】:

    看到这个答案

    db.admin().listDatabases

    【讨论】:

    • console.log(db.admin().listDatabases());返回承诺 { }。你能建议我应该如何使用你的代码来获取数据吗?
    • db.admin().listDatabases().then(function(databases){console.log(databases});
    • 该命令返回一个承诺,因为您没有向 listDatabases() 提供回调函数参数。 MongoDB node.js 驱动函数都以这种方式运行——函数回调参数是可选的。如果提供了该函数回调,则该函数以传统的 node.js 回调方式运行,并在函数操作完成时执行您的回调。省略函数回调参数,函数返回一个 Promise。
    猜你喜欢
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2023-03-24
    • 1970-01-01
    • 2020-07-19
    • 2019-12-27
    相关资源
    最近更新 更多