What is the best way to execute mongodb admin/console commands programmatically from node.js? Specifically, I would like to export a mongodb collection using mongodump after performing a series of inserts. Something like this:
// 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???
});
});
}
});
Try using 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);
});
});
// ...
A different year, a different answer.
You can use something like Shelljs
to exec
mongodump
or any other commands that the UNIX shell provides.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With