Sto utilizzando MongoDB 2.2.2 per la macchina Windows7 a 32 bit. Ho una query di aggregazione complessa in un file .js. Ho bisogno di eseguire questo file sulla shell e indirizzare l'output in un file CSV. Mi assicuro che la query restituisca un json "flat" (senza chiavi annidate), quindi è intrinsecamente convertibile in un csv pulito.
Conosco load()
e eval()
. eval()
mi richiede di incollare l'intera query nella shell e consente solo lo printjson()
all'interno dello script, mentre ho bisogno di csv. E, il secondo modo: load()
.. Stampa l'output sullo schermo e di nuovo in formato json.
C'è un modo in cui Mongo può eseguire questa conversione da json a csv? (Ho bisogno del file CSV per preparare i grafici sui dati). Sto pensando:
1. O mongo ha un comando incorporato per questo che non riesco a trovare adesso.
2. Mongo non può farlo per me; Posso al massimo inviare l'output JSON a un file che poi ho bisogno di convertire in CSV me stesso.
3. Mongo può inviare l'output JSON a una raccolta temporanea, il cui contenuto può essere facilmente mongoexported
in formato csv. Ma penso che solo le query di riduzione della mappa supportino le raccolte di output. È giusto? Ne ho bisogno per una query di aggregazione.Reindirizzare l'output della query mongo in un file csv
Grazie per qualsiasi aiuto :)
Se questo è qualcosa che non di frequente, si potrebbe non crei un'EXE standalone utilizzando .NET , python, o potresti usare NodeJs; ognuno ha un driver nativo che renderebbe facile l'esecuzione del codice e produrre l'output desiderato. – WiredPrairie
Mi riferisco alla risposta di Zachary sulla http://stackoverflow.com/questions/4130849/convert-json-format-to-csv-format-for-ms-excel e sono in grado di convertire da JSON in formato CSV. Ma come alternativa, posso inviare il json a una raccolta e poi fare un mongoexport? –
vi consiglio solo di costruire una piccola imbracatura utilizzando Node e il driver MongoDB per NodeJS e quindi è possibile eseguire qualsiasi codice vuoi. Otterrai i risultati desiderati molto rapidamente senza aver bisogno del guscio. Sarebbe molto mantenibile (e debugabile). – WiredPrairie