Skip to content

Instantly share code, notes, and snippets.

@solocommand
Created April 6, 2017 13:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save solocommand/11722930a1b843da6091bb57cf6d7961 to your computer and use it in GitHub Desktop.
Save solocommand/11722930a1b843da6091bb57cf6d7961 to your computer and use it in GitHub Desktop.
MongoDB Server-side CSV formatting
db.system.js.save({
_id: "csv",
value: function(doc, fields) {
var getValue = function(doc, field) {
var tree = field.split('.');
var value = doc;
tree.forEach(function(key) {
value = value[key];
})
return value;
};
var str = "\"" + doc._id + "\"";
fields.forEach(function(field) {
str = str + ",\"" + getValue(doc, field) + "\"";
})
return str;
}
});
db.loadServerScripts();
var fields = ['email', 'displayName', 'username', 'geoCode.ip', 'geoCode.hostname'];
db.getCollection('Customer').find({"geoCode.hostname":/tor/}).forEach(function(doc) {
print(csv(doc, fields))
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment