MongoDB CSV Export für Excel

Die MongoDB ist seit vielen Jahren mein treuer Begleiter, immer dann wenn es um Objektorientierte oder Dokumentenorientierte Datenbanken im OnPremise Umfeld angeht. Ich habe Sie schätzen, lieben und manchmal auch ein bisschen hassen gelernt. Alles in allem bin ich aber immer sehr gut mit ihr gefahren. Das einzige, an was ich immer wieder zu knabbern habe ist, dass ich die Objekte und Dokumente aus der Datenbank nicht mehr so leicht statistisch auswerten und wie ich das von anderen, relationalen Datenbanken gewohnt war. Dabei gibt es zwei recht einfache Möglichkeiten aus einer MongoDB CSV Dateien zu exportieren, die dann z.B. in Excel ausgwertet werden können. 

 

Variante 1: Export über MongoExport

mongoexport ist ein kleines Werkzeug, dass Teil der MongoDB ist. Mit mongoexport ist es möglich einzelne Collections oder Queries aus Datenbanken in verschiedenen Formaten zu exportieren. Für uns ist das CSV (Comma Separated Values) Format spannend, da es sich problemlos wieder in Excel importieren lässt. Die Anwendung mongoexport liegt im Binärverzeichnis der jeweiligen MongoDB-Installation und der Aufruf folgt in etwa diesem Schema:

 

 

mongoexport --db Datenbankname --collection Collectionname --type=csv --fields=Feld1,Feld2,Feld3 --out=C:\PfadZurCSV.csv

 

Variante 2: EXPORT ÜBER EINE SPEZIFISCHE QUERY IN DER MONGOSHELL

Immer wieder möchte ich aber nicht eine ganze Collection exportieren oder ich habe mir schon eine relativ aufwändige Query in der shell zusammengebaut um überhaupt an mein gewünschtes Ergebnis zu kommen. Dann läuft mein "Export" vielleicht nicht ganz so schön wie oben - aber das Ergebnis zählt. Letztendlich nutze ich aus, dass die mongo Shell direkt Javascript interpretiert und baue mir den export direkt selbst zusammen, in dem ich die gewünschten Daten per print ausgebe:

 

db.Users.find({ "Tenant" : "mytenant" }).forEach(function(user){

  print(user.name+","+user._id.valueOf()+","+user.email);

});

 

Das Ergebnis wiederum speichere ich dann in eine Datei ab un habe meine direkt nutzbare CSV Datei.