i need perform mongo query , convert results csv file. i've came across node-csv can't figure out how pass query results module convert , generate file.
so i've read (adapting code bit fit query example):
var generate = require('csv-generate'); var generator = generate({objectmode: true, headers: 7}); var columns = { _id: '_id', first_name: 'first_name', last_name: 'last_name', team: 'team.name', position: 'position', status: 'status' }; var stringifier = stringify({ header: true, columns: columns }); generator.pipe(stringifier).pipe(process.stdout); and queries like:
player.find({},{_id: true, first_name: true, last_name: true, "team.name": true, position: true, status:true}).exec(function (err,players){ // should convert csv string , generate file here }); however can't figure out steps should follow in order generate csv string , convert file example.
the way (which memory friendly) use streams. first, mongodb request:
collection.find({ some: "thing" }, function (err, cursor) { if (err) { return ...; } function next () { cursor.nextobject(function (err, obj) { if (err) { return ...; } if (obj === null) { return outputstream.end(); } outputstream.write(stringify(obj)); next(); }); } next(); }); ...the outputstream http response stream (supposing inside of http server request - response) or other writable stream.
this more or less basic example -- improved, that's how recommend it: stringify objects 1 one , write them in stream.
Comments
Post a Comment