sql >> Database teknologi >  >> NoSQL >> MongoDB

mongoexport med parametre + node.js + underordnet proces

Syntaksen for spawn er:

spawn(<command>, [array of arguments]);

For eksempel ved at lave en ls kommando med -l /home muligheder vil se sådan ud:

ls = spawn('ls', ['-l', '/home'];

Så din spawn('mongoexport',['--csv']); er på vej i den rigtige retning, men mongoexport --csv er ikke gyldig. Det er derfor du får fejl. mongoexport har brug for mere end bare --csv . Ligesom hvad du har gjort ovenfor, skal du for eksempel angive databasenavn (-d "lms" ), samlingsnavn (-c "databases" ), feltnavne (--fields firstname,lastname ), og osv.

I dit tilfælde skulle det være sådan her:

 var spawn = require('child_process').spawn;
 app.get('/export', function(req, res) {
     var mongoExport = spawn('mongoexport', [ 
         '--db', 'lms', '--collection', 'databases', 
         '--fields',
         'firstname,lastname,email,daytimePhone,addressOne,city,state,postalCode,areaOfStudy,currentEducationLevel,company',   
         '--csv'
     ]);

     res.set('Content-Type', 'text/plain');
     mongoExport.stdout.on('data', function (data) {
         if (data) {
             // You can change or add something else here to the
             // reponse if you like before returning it.  Count
             // number of entries returned by mongoexport for example
             res.send(data.toString());
         } else {
             res.send('mongoexport returns no data');
         }
     });
}


  1. Ændre variabelværdi i dokument efter noget tid, der går?

  2. Hvordan kommer man uden om dette MongoDB/Node asynkrone problem?

  3. Node-app reagerer ikke efter et vist tidsrum

  4. ønsker at køre redis-server i baggrunden nonstop