当前位置: 首页 > 面试题库 >

如何从node.js以编程方式执行mongodump命令?

慕意致
2023-03-14
问题内容

从node.js以编程方式执行mongodb admin /
console命令的最佳方法是什么?具体来说,我想在执行一系列插入操作后使用mongodump导出mongodb集合。像这样:

// requires and initializing stuff left out for brevity
db.open(function(err, db) {
    if(!err) {
        db.collection('test', function(err, collection) {
            var docs = [{'hello':'doc1'}, {'hello':'doc2'}, {'hello':'doc3'}];

            collection.insert(docs, {safe:true}, function(err, result) {

                // Execute mongodump in this callback???

            });
        });
    }
});

问题答案:

尝试使用child_process.spawn(command, args)

var spawn = require('child_process').spawn;

// ...
  collection.insert(docs, {safe:true}, function(err, result) {
    var args = ['--db', 'mydb', '--collection', 'test']
      , mongodump = spawn('/usr/local/bin/mongodump', args);
    mongodump.stdout.on('data', function (data) {
      console.log('stdout: ' + data);
    });
    mongodump.stderr.on('data', function (data) {
      console.log('stderr: ' + data);
    });
    mongodump.on('exit', function (code) {
      console.log('mongodump exited with code ' + code);
    });
  });
// ...


 类似资料:
  • 我有一些自定义测试脚本,可以使用命令运行,该命令执行一些节点脚本以启动E2E/Unit测试。但在此之前,我必须在其他终端窗口中使用(这也是一个自定义节点脚本,细节无关紧要)启动webpack dev server。因此,我希望省略手动执行,并将其移动到自定义脚本,即我希望在节点脚本中以编程方式执行webpack dev server。如何使用节点脚本以编程方式执行并停止它?提前感谢!

  • 使用故事板非常简单。您只需将操作拖到“退出”。但是我应该如何从我的代码中调用它呢?

  • 也许我完全误解了应该如何工作,但除了返回错误之外,我似乎无法让它做任何事情。 我是这么做的: Mongod正在运行 我想备份一个名为“mydb”的数据库 我在mongo shell中 我尝试了命令并得到了上面的错误 我尝试了和,都有相同的问题 我在这里做错了什么?

  • 问题内容: 我已经看到这个问题问过其他平台/语言-有什么想法吗?我想做类似的事情: 我希望能够在调试时切换键盘输入作为脚本的开始,这样我就可以花点时间启动chrome来监听我的节点检查器端口。 ***快速更新-我猜我实际上可以使用“ process.argv”来检测–debug是否传入。这是最佳/正确的方法吗? 问题答案: 在调试模式下运行时,NodeJS创建一个全局对象: 因此,可能的解决方案是

  • 问题内容: 我的目的是为Java Source File中的方法以编程方式调用Eclipse命令。重命名这样的方法还应该将更改应用于使用/引用此方法的所有实例。 我相信JDT具有Refactoring API,但无法找到相同的任何文档或教程。 有人能指出我正确的方向吗? 编辑:运行时不需要更改。 问题答案: 我认为您最有前途的方法是使用Eclipse源代码。 下载带有源代码的所需版本。特别是,您需

  • 问题内容: 如何创建可以重新启动的应用程序?我想创建一个设置可自行重启的网络管理员的应用。这可能吗?如果是这样,怎么办?我以为内置于节点中的全局变量可能会实现这一点。 问题答案: 我已经跑了好几次了,很容易上手。在以下位置查看:https://github.com/nodejitsu/forever