node.js使用Streams将mongoDB集合写入文件?

时间:2013-08-21 06:42:28

标签: node.js mongodb stream node-mongodb-native fs

我正在使用node.js和streams尝试将整个mongoDB集合转储到文件中,但它无法正常工作。我怀疑它与旧式流和0.10流有关,但我可能是错的。

下面的代码也可以在这里找到:github.com

mongodb-collection-dump也在那个回购中。

var fs = require('fs');
var dump = require('mongodb-collection-dump');

var collectionDumpFile = '/tmp/collection-dump.json';

var f = fs.createWriteStream(collectionDumpFile);

f.on('open', function() {
  var d = dump('mongodb://127.0.0.1/test_db', 'testcollection', f);
});
d.on('end', function(){
  console.log("done in write");
});

d.on('error', function(err){
  console.log("there was an error");
  console.log(err);
});

1 个答案:

答案 0 :(得分:0)

您可以使用mongodumpmongoexport来创建mongodb的转储。

mongodump更适合备份和存储,不仅仅是数据,还有很多关于集合的元数据,比如索引。您也可以将其调用到特定数据库(-d)以及集合(-c)。

要从node.js执行此操作,请使用child_process