2012-09-17 5 views
7

Je voudrais écrire un script pour générer un fichier CSV à partir de ma base de données mongoDB et je voudrais connaître la version la plus pratique!exporter MongoDB en CSV en utilisant pymongo

d'abord laissez-moi commencer par la structure des collections.

MyDataBase -> setting 
       users 
       fruits 

dans l'établissement que j'ai quelque chose comme

setting -> _id 
      data 
      _tenant 

et la chose que je suis après, fait un fichier CSV de profils données qu'ils ont des champs/propriétés comme « nom "," adresse "," postalcode "," email ", âge et etc. et non nécessaire tous ces profils ont tous les fichiers/propriétés et même certains d'entre eux ressemblent à collection (ont des sous-branches) qui ne m'intéresse pas du tout !

, mon code est python jusqu'à présent est ressembler à ces

myquery = db.settings.find() # I am getting everything ! 
output = csv.writer(open('some.csv', 'wt')) # writng in this file 

for items in myquery[0:10]: # first 11 entries 
    a = list(items['data']['Profile'].values()) # collections are importent as dictionary and I am making them as list 
    tt = list() 
    for chiz in a: 
     if chiz is not None: 
      tt.append(chiz.encode('ascii', 'ignore')) #encoding 
     else: 
      tt.append("none") 
    output.writerow(tt) 

ces champs/propriétés dont ont neccessary tous les domaines, et aussi même certains d'entre eux sont collection (avec sous-branche) et sera importé comme dictionnaire! donc, je dois les convertir à la liste et tout, il y a assez peu de choses à prendre en charge dans un tel processus et dans tous ne semble pas si simple!

Ma question peut paraître très générale mais est-ce une façon typique de faire un tel rapport?! Si non, pouvez-vous le préciser?!

+1

Avez-vous essayé [mongoexport] (http://www.mongodb.org/display/DOCS/mongoexport)? Il exportera une collection au format CSV et pourrait vous épargner l'effort de rouler votre propre outil. – Stennie

+0

bien, je souhaite que "mongoexport" travaille aussi en python! ou il y avait un bon IDE pour mongodb pour pouvoir jouer avec le format csv/table comme, plus facile. – user702846

+0

Il existe plusieurs [Admin UIs] (http://www.mongodb.org/display/DOCS/Admin+UIs), mais "nice" est subjectif car tout le monde a des exigences et des préférences différentes. Une option latérale que vous pourriez vouloir examiner est un [outil de reporting] (http://www.mongodb.org/display/DOCS/Business+Intelligence). Par exemple, Jasper/[iReport] (http://jasperforge.org/projects/ireport) est un concepteur de rapports visuel qui prend en charge MongoDB et peut exporter vers plusieurs formats, y compris CSV. – Stennie

Répondre

1

Oui, j'utilise la même méthode. Il est clair et rapide, il fonctionne également sans bibliothèques supplémentaires.

Questions connexes